状态压缩DP------学习小记
2013-08-17 15:55
176 查看
状态DP主要用的还是DP思想,顾名思义,加了一个状态,主要是用来求状态个数的。
状态是用二进制数来表示的,也就是用0或1来表示,每一行有一个状态数,就是由这一行的0或1组成的,首先我们要获得每行的状态数。
还要求满足要求的一些状态数,例如:两个方格的距离不小于2
可能还要计算一个状态数由几个1,这些都不难~
状态DP最主要的还是DP,上面这些都是求状态的一些代码,不是主要的。
状态DP要求不同行之间的的状态数是否满足要求,因为状态DP用二进制来表示,所以位运算用的比较多。
状态是用二进制数来表示的,也就是用0或1来表示,每一行有一个状态数,就是由这一行的0或1组成的,首先我们要获得每行的状态数。
for(int i=0;i<m;i++) { scanf("%d",&num); if(num==1) statue |= (1<<m); }
还要求满足要求的一些状态数,例如:两个方格的距离不小于2
bool ok(int x) { if(x&(x<<1))return false; if(x&(x<<2))return false; return true; }
可能还要计算一个状态数由几个1,这些都不难~
int getsum(int x) { int num=0; while(x>0) { if(x&1)num++; x>>=1; } return num; }
状态DP最主要的还是DP,上面这些都是求状态的一些代码,不是主要的。
状态DP要求不同行之间的的状态数是否满足要求,因为状态DP用二进制来表示,所以位运算用的比较多。
相关文章推荐
- 状态压缩dp学习小记part1
- 状态压缩dp学习小记part2
- ACM学习历程—ZOJ3471 Most Powerful(dp && 状态压缩 && 记忆化搜索 && 位运算)
- 状态压缩动态规划(压缩状态DP)学习笔记
- 学习笔记:状态压缩DP
- 从hihoCoder的一道题学习状态压缩+dp
- 【算法学习笔记】62.状态压缩 DP SJTU OJ 1088 邮递员小F
- 学习笔记:状态压缩DP
- 状态压缩dp学习 + poj3254(最简单的状态压缩dp)
- ACM学习历程—HDU1584 蜘蛛牌(动态规划 && 状态压缩 || 区间DP)
- 状态压缩DP 不断学习中。。。。。。
- 【算法学习笔记】67.状态压缩 DP SJTU OJ 1383 畅畅的牙签袋
- 状态压缩 DP 学习笔记
- 插头与轮廓线与基于连通性状态压缩的dp 学习指南
- hdu 1565 状态压缩dp
- poj 3311(状态压缩DP的最短路径)
- poj 2411 Mondriaan's Dream(状态压缩+dp)
- HDU 4295 状态压缩dp + KMP
- 状态压缩DP 入门
- hdu 1074 状态压缩dp