您的位置:首页 > 其它

AtCoder Grand Contest 010

2017-02-05 23:38 459 查看
A

很水的题, 最后全是偶数就行

#include <cstdio>
#include <cmath>
#include <cstring>
#include <vector>
#include <algorithm>
using namespace std;

typedef long long ll;
const int qq = 5e5 + 10;
int num[qq];

int main(){
int n; scanf("%d", &n);
int c = 0;
for(int i = 0; i < n; ++i){
scanf("%d", num + i);
if(num[i] % 2 == 1)
c++;
}
if(c % 2 == 0) puts("YES");
else puts("NO");
return 0;
}

B

这题是真的神奇, 想还是想到边上去了, 神tm结论, 这样的思维题要做练习... 

题解:

传送门

#include <cstdio>
#include <cmath>
#include <iostream>
#include <algorithm>
#include <cstring>
#include <cctype>
#include <stack>
using namespace std;

typedef long long ll;
const int qq = 1e5 + 10;
ll diff[qq];
ll num[qq];
ll n;

int main(){
scanf("%lld", &n);
ll sum = 0;
for(int i = 0; i < n; ++i) scanf("%lld", num + i), sum += num[i];
for(int i = 0; i < n - 1; ++i)
diff[i] = num[i + 1] - num[i];
diff[n - 1] = num[0] - num[n - 1];
ll k = (1 + n) * n / 2;
if(sum % k != 0){
printf("NO\n");
return 0;
}
k = sum / k;
for(int i = 0; i < n; ++i){
if(k == diff[i]) continue;
ll c = k - diff[i];
if(c < 0 || c % n != 0){
printf("NO\n");
return 0;
}
}
printf("YES\n");
return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: