设 (f_{i,j,c,d}) 表示到第 (i) 列有 (j) 个联通块,且这一列上面颜色为 (c),下面颜色为 (d) 的方案数 ((c,din{0,1},jle i imes 2))。
然后考虑这个状态可以从什么转移而来。
显然有:
[f_{i,j,1,1}=f_{i-1,j,1,0}+f_{i-1,j,0,1}+f_{i-1,j,1,1}+f_{i-1,j-1,0,0}
]
[f_{i,j,0,0}=f_{i-1,j,0,1}+f_{i-1,j,1,0}+f_{i-1,j,0,0}+f_{i-1,j-1,1,1}
]
[f_{i,j,1,0}=f_{i-1,j,1,0}+f_{i-1,j-1,1,1}+f_{i-1,j-1,0,0}+f_{i-1,j-2,0,1}
]
[f_{i,j,0,1}=f_{i-1,j,0,1}+f_{i-1,j-1,0,0}+f_{i-1,j-1,1,1}+f_{i-1,j-2,1,0}
]
这些转移状态。
处理出 (f_{1,1,0,0}=f_{1,1,1,1}=f_{1,2,0,1}=f_{1,2,1,0}=1) 然后转移即可。
转移时注意边界。