0%

Codeforces Global Round 26

Upsolved:A-G

A. Strange Splitting

考虑 minmax\min\ne\max 的情况,此时只需要 min/max\min/\max 出现次数最少的一种全给一个人即可。

B. Large Addition

按照题意模拟。

C1. Magnitude (Easy Version)

通过记录最小值和最大值进行 DP 转移。

C2. Magnitude (Hard Version)

转移过程中顺便记录方案数即可。

D. “a” String Problem

去掉末尾 aa,所有合法串一定是最右边一个非 aa 位置结尾的后缀,暴力枚举复杂度是调和级数,Hash 判断即可。

E. Shuffle

不考虑根的特殊贡献,相邻两个点最多贡献一个,于是上界为最大独立集,容易构造。

换根 DP 即可。

F. Reconstruction

长度为 lenlen 的区间值域限制为 [len×m,len×m][-len\times m, len\times m]

值域限制包含可拆分,只用考虑相邻两个位置的限制:

  • 同为 P/SP/S:限制长度为 11 的值域
  • P,SP, S:限制了整个序列的和
  • S,PS, P:限制了整个序列的和加上长度为 22 的值域

考虑枚举开头一段 PPPPPSPPPPPS 即可求出和,剩下直接 DP 判断。

G. Magic Trick II

直观理解答案离 nn 不会太远,ans=n/n1ans = n/n - 1​ 容易判断。

对于 ans=n2ans = n - 2,可以实现整体向左循环移 22 位,后 n1n - 1 个数循环右移 11 位,可以镜像。

nn 为奇数,可以实现整体向左循环移 11 位,于是可以考虑逐步让 1i1\sim i 连续,每次将 i+1i + 1 循环移到开头,1i1\sim i 循环移到末尾。

nn 为偶数执行上述或者镜像操作一定能使 1n1\sim n 连续,但不能保证 11 循环移动到开头,这里是因为操作不改变逆序对奇偶性。

该情况如果不行则 ans=n3ans = n - 3,可以把 nn 移动到末尾转换成 n1n - 1 的奇数情况。

H. Tower Capturing