专栏文章

P11316题解

P11316题解参与者 1已保存评论 0

文章操作

快速查看文章及其快照的属性,并进行相关操作。

当前评论
0 条
当前快照
1 份
快照标识符
@miqyagje
此快照首次捕获于
2025/12/04 12:43
3 个月前
此快照最后确认于
2025/12/04 12:43
3 个月前
查看原文

P11316

尝试复健。
如果直接正向考虑 MM 不整除的情况,太复杂,所以考虑算出不好的排列,然后拿总数减去它。
总数可以直接算出来,故不细说。考虑 f[i]f[i] 表示一共有 iidistdistMM 整除的数对的排列个数。这个直接做有点难,但是可以设 f[i]f[i] 表示一共有 i\ge i 对不好的数对的排列个数,然后作容斥。
我们把整个序列每 MM 个切一段,那么 mod M\bmod\ M 同余的位置在每个段内相对位置相同,我们要做的就是在这些位置中取出若干对位置进行计数。具体地,设当前枚举 mod M=i\bmod{\ M}=i,枚举选出 j(2j)j(2 \mid j) 个位置转移,则有方程(设 tottot 为整个序列中 modM=i\bmod M=i 的位置个数):
f[i]×(totj)×(jj2)×j!f[i+j2]f[i] \times \binom{tot}{j} \times \binom{j}{\frac{j}{2}} \times j! \rightarrow f[i+\frac{j}{2}]
tottot 个位置中选 jj×\times 分配颜色方案数 ×\times 选出的 jj 个数顺序。
然后,我们已经选出了 jj 对,对于剩下的 nj2n-\frac{j}{2} 个数,依据上面的方式继续乘以 颜色分配方案数 乘以 颜色顺序即可。
以上我们即可求出 f[i]f[i] 表示 i\ge i 对不好数对的方案数,最后乘以一个 (1)i+1(-1)^{i+1} 的系数累加即可得到不好的排列个数,拿最开始的方案数即 (2×nn)\binom{2 \times n}{n} 减去即可。
复杂度 O(n2)O(n^2)

评论

0 条评论,欢迎与作者交流。

正在加载评论...