动态规划---状态压缩(即集合上的动态规划)
来源:互联网 发布:双线性插值算法 编辑:程序博客网 时间:2024/06/07 10:51
参考博客:http://godfrey90.iteye.com/blog/725562
一、首先谈谈什么是状态压缩?
状态压缩就是将一个阶段或(集合)的状态使用二进制0、1进行表示,这类问题中,状态只存在两种:有或无。通过二进制来达到节省存储空间和查找效率的作用。
二、什么是动态规划?
动态规划是通过定义某一个状态,这个状态可以通过性质相同的另一个(或多个)状态推导出来,即存在最优子问题。另外,不同问题的子问题中可能存在同样的子问题,这就是重叠子问题。最优子问题、重叠子问题是动态规划的两大特性,如果存在这两种特性,则就可以选择使用动态规划来解题。
如果说状态压缩是数据结构的话,动态规划就是算法。
三、什么类型的题适合用状态压缩动态规划去做?
这类问题一般会设计到棋盘或者网格的题,第i行状态可以通过第i-1行状态递推得到。
例如:n*n的棋盘,放n个车,要求不相互攻击,条件设置比较简单:只有在同行或同列才会攻击。
解:状态为到第i行后各列的放置情况,设第i行的状态为:10011,则第i-1行的状态可以为:00011、10010、10001,所以易知状态转移为:d[i][a]=sum(s[i-1][b])其中a、b之间存在某种联系,本体中是a-b后,只存在一个1。最后d[n][1....1]即为最终结果。
四、推荐题型:
集合上的动态规划---最优配对问题(推荐:*****)
poj 3254---Corn Fields
POJ 2411 Mondriaan's Dream(DP---状态压缩)
- 动态规划---状态压缩(即集合上的动态规划)
- hdu1074(集合上的动态规划 状态压缩)
- 状态压缩的动态规划
- 状态压缩动态规划
- 状态压缩动态规划
- 状态压缩动态规划
- 状态压缩动态规划
- 状态压缩动态规划
- 动态规划!状态压缩
- 状态压缩动态规划
- 【BZOJ2734】【HNOI2012】集合选数(状态压缩,动态规划)
- 多状态动态规划的压缩
- 动态规划(5):状态压缩
- 动态规划(状态压缩)--铺地板
- 【状态压缩】【动态规划】电子竞技
- 【状态压缩】【动态规划】坑爹题
- 什么是状态压缩动态规划
- 动态规划之状态压缩
- 推进移动化:Infosys助力建设未来型零售企业
- 利用ODP.Net进行批量插入和更新
- 微软2012暑期实习生校园招聘笔试题
- Relative布局,一张图片在另一张上面的效果
- javascript获取光标位置以及设置光标位置
- 动态规划---状态压缩(即集合上的动态规划)
- eclipse中高亮显示相同的变量
- js 日期控件
- C# Tag属性
- 步步LINUX C--进程间通信(一)管道
- ubuntu10.04安装qt-sdk-linux-x86-opensource-2010.05.1.bin
- Skype国际版下载地址(非Tom版)
- 正则指引
- Java:集合类性能分析