Codeforces Round #572 (Div. 2)
Posted dup4
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Codeforces Round #572 (Div. 2)相关的知识,希望对你有一定的参考价值。
目录
Contest Info
Solved | A | B | C | D1 | D2 | E | F |
---|---|---|---|---|---|---|---|
6/7 | ? | ? | ? | ? | ? | ? | - |
- O 在比赛中通过
- ? 赛后通过
- ! 尝试了但是失败了
- - 没有尝试
Solutions
A. Keanu Reeves
签到题。
#include <bits/stdc++.h>
using namespace std;
?
#define N 1100
char s[N]; int n;
?
int main()
while (scanf("%d%s", &n, s + 1) != EOF)
int cnt = 0;
for (int i = 1; i <= n; ++i)
if (s[i] == '1') ++cnt;
else --cnt;
if (cnt)
puts("1"); puts(s + 1);
else
puts("2");
printf("%c %s\n", s[1], s + 2);
return 0;
B. Number Circle
题意:
有一个序列\(a_1, a_2, \cdots, a_n\),要求重新排列构成一个环,任意一个数都要满足严格小于旁边两数之和。
输出方案;
思路:
本来的想法是最大的放中间,次大,第三大的放旁边这样一次放下去,但是发现这样并不总能构造出解。
后来想想,直接降序排,那么其中除了最大的一个元素可能不满足,其他元素肯定都满足。
那么我们先降序排,有\(a_n, a_n - 1, \cdots, a_1\)
然后将\(a_n - 1\)移到最后一个,依然满足其他元素都满足,最大的那个元素可能不满足。
但是这个情况下,如果最大的元素都不满足,那肯定满足不了了,因为和最大的元素相邻的是次大的和第三大的。
代码:
#include <bits/stdc++.h>
using namespace std;
?
#define N 100010
int n, a[N], b[N];
?
bool ok(int *a)
if (a[2] + a[n] <= a[1]) return 0;
if (a[1] + a[n - 1] <= a[n]) return 0;
for (int i = 2; i < n; ++i)
if (a[i - 1] + a[i + 1] <= a[i])
return 0;
return 1;
?
int main()
while (scanf("%d", &n) != EOF)
for (int i = 1; i <= n; ++i) scanf("%d", a + i);
sort(a + 1, a + 1 + n, [](int x, int y)
return x > y;
);
b[1] = a[1];
for (int i = 3; i <= n; ++i) b[i - 1] = a[i];
b[n] = a[2];
if (ok(b))
puts("YES");
for (int i = 1; i <= n; ++i) printf("%d%c", b[i], " \n"[i == n]);
else
puts("NO");
return 0;
C. Candies!
题意:
有\(n\)个数\(s_i(0 \leq s_i \leq 9)\),定义
\[
\begineqnarray*
f([a_1, a_2, \cdots, a_2^k]) = \sum\limits_i = 1^k \left \lfloor \frac\sum\limits_j = 1^i + 2^i - 1 a_j \bmod 1010 \right \rfloor \left \lfloor \frac\sum\limits_j = i + 2^i^ a_j \bmod 1010 \right \rfloor
\endeqnarray*
\]
D1. Add on a Tree
D2. Add on a Tree: Revolution
E. Count Pairs
以上是关于Codeforces Round #572 (Div. 2)的主要内容,如果未能解决你的问题,请参考以下文章
Codeforces Round #572 (Div. 2) A.
Codeforces Round #572 (Div. 2)
Codeforces Round #436 E. Fire(背包dp+输出路径)
[ACM]Codeforces Round #534 (Div. 2)