A. Two Arithmetic Progressions
在多项式欧几里得算法中,将 \(\gcd\) 的其中一个参数改为常数 \(\rightarrow\) 求出能被各个约数整除的方案数,然后进行约数容斥。
B. Two-Powered Sum
逆向操作。如果复杂度是 \(O(N^4)\),可以按如下方式处理:
- 核心操作:确定新染色的位置,并将其分成若干个组。每个组在“至少包含一个上一次染色的位置”的前提下自由染色。
- 容斥转化:一个组的染色方案总数可以表示为 \(2^a - 2^b\) 的形式。如果类比容斥原理来考虑,似乎可以把状态转移进一步拆解。
- 具体实现:实际上,可以做到不在状态中维护“上一次染了多少个位置”。在直接将染色方案数视为 \(2^a\) 种的基础上,当同时染色 \(g\) 个组时,乘以 \((-1)^{g+1}\) 进行 \(\text{DP}\) 转移即可成功。
浙公网安备 33010602011771号