[状压矩阵优化DP]花园
题目
题解
我就是个辣鸡,状压都没看出来,只会打dfs
对于m<=5,肯定考虑状压
令C为1,P为0
那么二进制状态最多也就11111,十进制的31,数组不大,可以过80
令dp[i][s]表示序列长度为i,最后m位状态为s的方案数,肯定可以通过dp[i][k]转移过来
至于k,s能否进行转移,我们先进行dfs预处理出所有合法情况,且两个状态能否转移。用vis数组标记。
之后枚举起点即前m个的情况,进行dp即可。
需要注意的是这个序列是环形的,因而我们需要多搞一个m,那么最后我们回到了初始的状态
朴素
原创
2020-08-25 19:16:03 ·
196 阅读 ·
0 评论