LOJ6275口胡

为什么 \(n\) 只有 \(3\) 啊(

\(f[S][n][k]\) 是前 \(n\) 行,最后一行黑子的状态是 \(S\) 时,有 \(k\) 个连通块的方案数。

\(g(S1,S2)\) 表示当上一行状态为 \(S1\) 这一行状态为 \(S2\) 时增加(减少)的连通块数量。

\(S1,S2\) 需要使用最小表示法,不过无所谓。

那么显然有 \(f[B][n][k]=\sum f[A][n-1][k-g(A,B)]\)

\(F_{n,A}(x)=\sum f[A][n][i]x^i\),那么应该有类似 \(F_{n,A}(x)=\sum f_{n-1,B}(x)G_{B,A}(x)\) 的东西。

把这个看成长度为 \(O(m)\) 的循环卷积,带入单位根之后矩阵快速幂+IDFT即可。

复杂度 \(O(m9^3\log m)\),可以通过。

posted @ 2022-07-02 15:27  Prean  阅读(20)  评论(0编辑  收藏  举报
var canShowAdsense=function(){return !!0};