2019暑假多校训练第六场 | 部分题解

自闭了啊

这一场是杭电的Claris出的

要继续加油鸭~

题解链接: https://pan.baidu.com/s/1cKjNzTaPdwZ8vnbesX-7zw 提取码: zgud 复制这段内容后打开百度网盘手机App,操作更方便哦

 

08 TDL

HDU 6641 暴力枚举

我做的题目emm

大佬告诉我了思想 但是出现了一点失误导致WA了四次

先枚举 f(n,m)-n 范围是1~600

(打表得到的结论)

再用 (f(n,m)-n) ⊕ k = n

将算出的 n 带入算出 f(n,m) 

判断是否与枚举结果相同

记录最小值

代码如下:

#include
#include 
using namespace std;
long long m, k, n;
#define ll long long
ll  gcd(ll a, ll b)
{
    return b == 0 ? a : gcd(b, a % b);
}

ll run(ll n, ll m)
{
    int num = 0;
    for (ll i = n + 1; i <= n + 1000; i++) {
        if (gcd(i, n) == 1) {
            num++;
        }
        if (num == m) {
            return i;
        }
    }
    return -1;
}
int main()
{
    int t;
    scanf("%d", &t);
//      printf("%d**\n",run(2,4));
    while (t--) {
        scanf("%lld%lld", &k, &m);
        ll ans = -1;
        //printf("%lld\n",ans);
        bool flag = false;
        for (ll  i = 1; i <= 1000; i++) {
            n = i ^ k;
            if(n == 0) {
                continue;
            }
            ll q = run(n, m) - n;
            if (q == i) {
                if(ans == -1) {
                    ans = n;
                } else {
                    ans = min(ans, n);
                }
                flag = true;
            }
        }
        if(flag) {
            printf("%lld\n", ans);
        }  else {
            printf("-1\n");
        }
    }
    return 0;
}

 

12 Stay Real

HDU 6645 签到题

Alone做的

题意:两个人从最小堆中依次取数字(取叶节点的数字),

两人都想使他们的取到的数字之和最大化,

贪心思想可得两个人依次拿当前数组中最大的数即可。

#include 
using namespace std;
const int maxn=1e5+5;
long long a[maxn];
bool cmp(long long x,long long y)
{
    return x>y;
}
int main()
{
    int t,n;
    scanf("%d",&t);
    while(t--)
    {
        scanf("%d",&n);
        for(int i=1;i<=n;i++)
            scanf("%lld",&a[i]);
        long long sum1=0,sum2=0;
        sort(a+1,a+n+1,cmp);
        for(int i=1;i<=n;i++)
        {
            if(i%2==1)
                sum1+=a[i];
            else
                sum2+=a[i];
        }
        printf("%lld %lld\n",sum1,sum2);
    }
    return 0;
}

06 Faraway

HDU 6639 绝对值问题

 

 

02 Nonsense Time

HDU 6635  

 

 

 

05 Snowy Smile

HDU 6638

你可能感兴趣的:(比赛周记)