2.15 Kamui ——ARC131~133
但是今天的古报还是发。明天就没古报了,因为要回学校集训,一天打不了三场,所以可能 128~130 的古报会几天之后发。
ARC131
ARC131D AtArcher
对于两侧,我们选的个数一定最多差 \(1\)。而对于一侧,我们选的点一定是 \(r,r+d,\dots,r+kD\),其中 \(r\le D\)。于是我们对于每一个 \(k,r\) (\(k\in[n/2-1,n/2+1]\))都算出一侧的答案即可。用差分即可。
ARC131E Christmas Wreath
考虑到 \(n\le 5\) 或 \(n\%3=2\) 显然无解。然后考虑如何构造 \(n=6\)。我们发现可以让 \(1\) 连向其余的边全为 R。这么操作的意义是,之后所有含 \(1\) 的三元环就不可能同色了。于是我们推而广之,每次可以选择一个点,将其出边全部染成相同颜色,然后就可以把这个点给删掉了。也就是我们需要将 \(1,2,\dots,n-1\) 划分成三类,每类 sum 相同。这个 DP 一下即可。
ARC132
ARC132D Between Two Binary Strings
考虑到在答案串中每个 \(1\) 的位置,都应该处于 \([l_i,r_i]\),其中 \((l_i,r_i)\) 为 \(s,t\) 中第 \(i\) 个 \(1\) 的位置。于是我们贪心地进行操作,最大化相邻 \(1\) 的个数,每次能与左边相邻就相邻,否则贪心放在 \(r_i\) 处。最后一个 \(1\) 若处在末尾则有额外的相邻的 \(0\) 的贡献。然后还需要考虑第一个 \(1\) 放在最左侧会有额外的相邻的 \(0\) 的贡献,于是钦定第一个 \(1\) 在首位之后后面在做一次,两者取 max 即可。
ARC132E Paw
考虑最终局面状态。由于一定不会有 ><
,所以一定长成 <<<...>>>
这种样子,其中 ...
是原串部分。于是考虑 \(f_i\) 表示从头开始 \(i\) 个洞都是 <
的概率。那么从 \(i-1\) 转移过来后,第一个洞要么向左,要么早于其它洞,所以有 \(1-\frac{1}{2i}\) 的概率。于是 \(f_i=f_{i-1}\times \frac{2i-1}{2i}\)。然后就结束了。
ARC132F Takahashi the Strongest
这种奇怪的变换给人一种多进制 FWT 的感觉。先补集转换,并考虑简化成出的与其余两个人相同时获胜(这个与原题没有区别),那么就得到 1+1->1, 2+2->2, 3+3->3, 其余全部变成 0。考虑对这个编一个蝴蝶变换:第一次变换 0‘=1+2+3,其余不变,然后再点积后,逆变换做 0’=0-1-2-3, 1‘=0-1, 2‘=0-2, 3’=0-3。容易得知这样可以得到答案序列。复杂度 \(O(k4^k)\)。
ARC133
ARC133D Range XOR
首先考虑变成前缀 xor。然后我们发现如果考虑除了最低位的其余位,若 \(x\) 是偶数,那么前缀 xor 为 \(0\),否则前缀 xor 为自身。并且最低位只与 \(x\) 模 \(4\) 的余数有关。于是我们枚举 \(l,r\) 模 \(4\) 的余数,然后对其余位数位 DP 即可。
ARC133E Cyclic Median
首先需要考虑将其变成对于每个 \(k\),算出中位数 \(> k\) 的方案数,于是每个数都变成了 \(0/1\)。然后我们发现如果 \(x=y\) 那么 \((a,x,y)\) 一定会变成 \(x\)。并且对于 \(k\) 和 \(v-k\),\(x=y\) 的贡献对称。所以我们只需要统计 \(x\neq y\) 的贡献,此时只有 \(k<a\) 时才有贡献。这个是容易的,对于每一个环(共 \(\gcd(n,m)\) 个环),方案都是 \(k^{n'}(v-k)^{m'}+k^{m'}(v-k)^{n'}\)。于是对于每个 \(k\) 把方案数叠加起来即可。