KMP
考虑 KMP 算法的运行过程,等价于有一些相等和不等关系。不等关系是个弦图,抄一个弦图染色的模板就可以辣!
异或
因为
{a,b,…,}
和
{a⊕b,b,…,}
答案一样。
考虑高斯消元后的矩阵。
如果非零的行不超过
24
,可以
224
算出答案。
否则,考虑恰好只有一个
1
的列。设
染色数
首先,删除度为
1
的点。如果一共删除了
然后,
解法一
考虑 DFS 树,非树边有
m+1−n
条。
枚举非树边深度较浅的点的颜色,之后树 DP。
复杂度是
O(nBell(m+1−n))
.
解法二
收缩度为
2
的点,剩下
预处理
same(n)
和
diff(n)
表示长度为
n
的链,端点颜色相同、不同的染色数。
枚举
复杂度是
O((m−n)2Bell(2(m−n)))
.
以上两个做法各有 40% ,并集有 60% .
解法三
同解法二收缩,之后用解法一的树 DP。复杂度是 O((m−n)Bell(m+1−n)) .