-
题意
计数在 \(n\times n\) 的网格上染色,使得每行每列恰有 \(2\) 个黑色格子的方案数。
旋转或翻转同构算一种,模 \(10^9+7\)。
\(n\le 2\times 10^7\)
-
题解
先考虑没有同构怎么做。
考虑一张左右各 \(n\) 个点的完全二分图,现在就是要求环覆盖方案数。
那么答案就是将右侧点划分成若干环的方案数乘上 \(n!\) 。
设环和答案分别为 \(G(x),F(x)\) 。
有:
\[\begin{align} G(x)&=\sum_{i\ge 2}\frac{x^i}{2i}\\ &= -\frac{1}{2}\ln(1-x)-\frac{x}{2}\\ F(x)&=e^{G(x)}\\ F'(x)&=e^{G(x)}G'(x)\\ F’(x)& =F(x)\frac{x}{2(1-x)}\\ nf_n&=(n-1)f_{n-1}+\frac{1}{2}f_{n-2} \end{align} \]然后利用 \(\text{Burnside}\),考虑群 \(D_8\) 的其余 \(7\) 个元素。
-
上下或左右翻转
这是容易的。
-
沿对角线翻转
将 \(l_i\) 和 \(r_i\) 合并,那么就是每个点度数为 \(1/2\) 的图的个数。
那么
\[\begin{align} G(x)&=\sum_{i\ge 3}\frac{(i+1)x^i}{2i}+\frac{x^2}{2} \\ &=-\frac{1}{2}\ln(1-x)+\frac{x^3}{2(1-x)}+\frac{x^2}{4}-\frac{x}{2}\\ F'(x)&=F(x)\frac{-x^3+2x}{2(1-x)^2}\\ nf_n&=2(n-1)f_{n-1}-(n-3)f_{n-2}-\frac{1}{2}f_{n-4}\\ \end{align} \] -
旋转 \(\pi\)
这部分较为复杂,还是一样地考虑,但是要奇偶讨论一下
-
\(2\mid n\)
\[\begin{align} G(x)&=\sum_{i\ge 2}\frac{x^i}{2i}+\frac{x}{4}\\ &=-\frac{1}{2}\ln(1-x)-\frac{x}{4}\\ F'(x)&=F(x)\frac{x+1}{4(1-x)}\\ nf_n&=(n-1)f_{n-1}+\frac{1}{4}(f_{n-1}+f_{n-2}) \end{align} \] -
\(2\nmid n\)
可以发现此时就是求一个前缀和。
-
-
旋转 \(\frac{\pi}{4},\frac{3\pi}{4}\)
容易说明 \(2\nmid n\) 无解,剩下的同理,最后是:
\[nf_n=(2n-1)f_{n-1}-f_{n-2}+2f_{n-3} \]
这样将所有的贡献算出来就好了,复杂度 \(O(n)\) 。
注意到所有的贡献都是整式递推,所以理论最优为 \(O(\sqrt{n}\log n)\) 。
-