8.10 近期总结
P9510 『STA - R3』高维立方体
题意:\(T\) 组数据,给出 \(n,p\),求 \(\sum\limits_{i=1}^n \text{fib}(i)\cdot(f(i-2)+\text{fib}^2(i)+\text{fib}(i))\) 模 \(p\),其中 \(f(n)=\sum_{i=1}^n\text{fib}^2(i)\)。\(1\le T\le2\times10^5,\space 1\le n\le10^{18},\space 2\le p\le 10^9+7\)
考场自闭题。(被整数列项薄纱了
推式子,首先,\(\sum\limits_{i=1}^n\text{fib}^2(i)=\text{fib}(i)\text{fib}(i+1)\)
证明:数学归纳法,当 \(n=1\) 时 \(\text{fib}^2(1)=1=\text{fib}(1)\text{fib}(2)\)。
若对于 \(1...n-1\) 成立,考虑 \(n\) 的情况:
另一种理解是整数裂项。
证毕。
然后大力推式子:
其中又是一个整数裂项……
然后矩阵快速幂 \(O(T\log n\cdot 2^3)\) 做完了。
CF1270G Subset with Zero Sum
题意:\(n\) 个数 \(a_{1...n}\),对于 \(i\) 满足 \(i-n\le a_i\le i-1\),选若干个数使得这些数的和为 \(0\),给出方案,可以证明一定存在这样的方案。\(1\le n\le10^6\)
条件过于阴间,移一下项就是 \(1\le i-a_i\le n\)。考虑连边 \(i\rightarrow i-a_i\),最后是一个内向基环树。考虑在环上任意一点 \(u\) 走一遍环,最终可以回到 \(u\),那么路径上的 \(a\) 的和就是 \(0\),可以大力想象,正确性显然。
时间复杂度 \(O(n)\)。
ARC071E TrBBnsformBBtion
题意:我们定义字符串为由 \(\{\text{'A','B'}\}\) 组成的串。对于一个串 \(\text S\),我们有两种操作:
-
把一个字符变成两个另一种字符,如把 \(\text{'A'}\) 变成 \(\text{'BB'}\)。
-
消除三个连续相同字符。
把我送走的 \(\text{ARC C}\)。
这题利用了很强的构造思想,需要一定的构造思维(AtCoder 不都这样吗
考虑一个串 \(\text{S}\) 可以变成 \(\text{T}\) 的必要条件。把 \(\text{'A'}\) 看做 \(1\),\(\text{'B'}\) 看做 \(2\),设 \(f(\text S)\) 为 \(\text S\) 所有字符的值的和在 \(\mod 3\) 意义下是多少。
显然对串 \(\text{S}\) 任意操作,都不会改变 \(f(\text S)\) 的值。那么若 \(f(\text S)\not=f(\text T)\),则一定无解。
另一种理解:我们把 \(\text{S,T}\) 的所有 \(\text{'B'}\) 变成 \(\text{'A'}\),然后三个三个消除 \(\text{'A'}\),剩下会有 \(0/1/2\) 个 \(\text{'A'}\),判断是否相同即可。
ARC072B Alice&Brown
题意:两堆石子,分别有 \(n,m\) 个。两个人轮流操作,不能操作者输,每次操作:
- 选择一堆中的任意偶数个石子(非零),一半扔掉,一半放入另一堆石子。
求先手是否有必胜策略。\(1\le n,m\le 10^{18}\)
打表题,暴力求 \(f(1...100,1...100)\),然后发现当 \(|n-m|>1\) 时先手必胜。
然后……?没了?