如果我们知道了图,我们统计交错路的方法:
设(g_i)表示以(i)结尾的交错路数量的奇偶性。
按照拓扑序转移
(g_v=(1+sum{g_u}) mod 2),(ans=(sum g_i)mod 2)。
我们考虑从(1 sim n)加入点,
首先,如果和(i)相连的(j)与(i)异色或者(g_j=0),那么这条边连不连都不会影响(g_i)
然后我们随便把一个与(i)异色且(g_j=1)的(j)插入线性基,那么剩下的(g_j)也可以乱选,然后通过选不选这个线性基的数来控制(g_i)的奇偶性。
所以我们可以设(f[i][0/1][0/1][0/1])分别表示添加了(i)个点,是否有点颜色是黑且g为1,是否有点颜色为白且g为1,(sum g_i)的奇偶性。
转移考虑枚举当前加入的点的(g)的奇偶性。