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;
}
很水的题, 最后全是偶数就行
#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;
}
相关文章推荐
- AtCoder Grand Contest 010 D - Decrementing
- 构造——AtCoder Grand Contest 010 B
- AtCoder Grand Contest 010 D - Decrementing 博弈论
- AtCoder Grand Contest 010
- AtCoder Grand Contest 010 B - Boxes 验证解的存在性 2017/2/6
- AtCoder Grand Contest 010 E - Rearranging 拓扑排序+贪心
- AtCoder Grand Contest 010 F - Tree Game 博弈论
- 【Atcoder Grand Contest 010】D - Decrementing——博弈论
- Atcoder Grand Contest 010 B - Boxes 差分
- Atcoder Grand Contest 010 C - Cleaning 树贪心(伪)
- AtCoder Grand Contest 010 B - Boxes 验证解的存在性
- AtCoder Grand Contest 010 C - Cleaning 贪心
- Atcoder Grand Contest 010 D Decrementing
- AtCoder Grand Contest 010 B(差分)
- AtCoder Grand Contest 002 D - Stamp Rally
- AtCoder Grand Contest 020 B - Ice Rink Game
- 【AtCoder】(AtCoder Grand Contest 006)D - Median Pyramid Hard
- AtCoder Grand Contest 020 C - Median Sum (背包问题+bitset )
- AtCoder Grand Contest 011
- AtCoder Grand Contest 016 B - Colorful Hats 乱搞