SS241106C. 此时此刻的光辉

SS241106C. 此时此刻的光辉

题意

给你 \(n\) 个点,每个点需要被染成 \(0/1/2\) 三种颜色之一,有 \(m\) 种限制,每个限制形如【\(u\) 不是颜色 \(x\) or \(v\) 不是颜色 \(y\)】,问你满足限制的涂色方案数。

思路

拜谢 dxw。

题解提到了 FWT 是什么东西,好吓人啊。

这里是题解的做法一,不知道 FWT 是什么东西,也不知道和 FWT 有什么关系。

感觉这个做法偏暴力。

考虑 meet in the middle 方法。

左边 \(B\) 个点,右边 \(n-B\) 个点,枚举左边和右边的涂色状态,是 \(O(3^{B}+3^{n-B})\) 的。

计算对于左边每个状态,右边有多少个状态是合法的。

可以处理处左边状态会对右边造成什么限制,限制形如【能不能涂 \(0/1/2\)】,因为不可能三种颜色都不能涂,因此限制的种类有 \(7\) 种。

考虑预处理出右边每种限制的情况下有多少种状态是符合这种限制的。

限制情况一共 \(7^{n-B}\) 种。

然后做完了,时间复杂度 \(O(3^{B}+21^{n-B})\)?实际上可以对每个状态枚举合法的限制,每个状态的合法限制只有 \(4^{n-B}\) 种。因此时间复杂度 \(O((3^B+12^{n-B})\times poly(n))\)

\(n-B\)\(6\) 或者 \(7\) 都是可以的。

posted @ 2024-11-07 16:14  liyixin  阅读(6)  评论(0编辑  收藏  举报