状压DP小结
看了一个多星期状压DP,总算有点明白,大概可以分为两种:数据是在矩阵中的,数据是线性的,在矩阵中的一般就是排兵布阵这一种的,还有一种线性结构中给定条件让你求最大权值,比如求最大权值路线,TSP问题等,前一种的状态比较好想,一般就是有了第一行的状态然后推下一行的状态,i行的状态一般由i-1行的状态推出,状态转移好想,在这里有两种排兵布阵,一是共有多少种排法,另一种是最多能排多少兵,求方案数的一种就是只要找到满足的状态就把这个状态的方案数加上。求最大权值的就是当找到一种状态的时候要考虑这个状态取了还是不取得最大价值。另一种线性结构中的就是一般的就是类似背包:当前状态选还是不选。一般是将这条线上的所有位置都用01表示,0表示不选,1表示选,利用位运算来进行状态转移,在某一个状态中2进制中的某一位选还是不选的最大价值。
状压DP看完了,得需要沉淀,过段时间有了更深刻的理解再回来做题。马不停蹄来搞数位DP。
我每天都在努力,只是想证明我是认真的活着.