URL
题意
懒得写了。。
解法
考虑状态压缩 DP,用类似最小表示法的东西存最后一列的状态。因为 DP 时还要记连通块的个数,所以复杂度带一个不太好优化的 \(M^2\)。
考虑把每一列的 DP 数组当成多项式的系数,\([x^i ]\) 的系数就是 \(i\) 个连通块的 DP 值,我们想要求最后一列所有状态的 \([x^K]\)。注意到这个多项式的求值是可以通过矩阵乘法做到单次 \(O(|S|\log{M})\) 的,其中 \(S\) 是状态个数。记 \(L\) 为不小于 \(\lfloor NM/2 \rfloor\) 的最小的 \(2\) 的整数幂,我们把 \(L\) 个单位根代进去求值后再用 DFT 还原系数即可。
实现
路上