状态压缩类动态规划:
一、问题简介:
1.状压dp:以集合信息为状态(下面会解释)
2.一般dp只需要提取出两三个信息对状态进行转移,但是如果多个信息对状态有影响,我们不能开多维数组(可能会爆空间),这时候考虑状压dp
3.状压指对多个状态进行压缩
二、问题引入:(旅行商问题 TSP)
一个n个点的带权完全图,求权和最小的经过每个点恰好一次的封闭回路。
我们只要知道哪些点已经被遍历过,遍历的具体顺序对于最后结果无影响,设当前位置为i,遍历过的点的集合为s,转移方程为:
f[i][s]=min(f[j][s-i]+dist(i,j))
状压dp:以一个集合内的元素信息为状态且状态总数为指数级别的dp
特点:
1.数据规模某一维或某几维非常小
2.最优性原理和无后效性
三、状压dp:
(1)前置知识:
1.判断第i位是否为0 : (s&(1<<i))==0
2.将第i位设置成1: (s|(1<<i))
3.将第i位设置成0: (s&~(1<<i))
(2)典型例题:
略~~
标签:状态,遍历,压缩,状压,笔记,集合,动态,dp 来源: https://www.cnblogs.com/yxr001002/p/14426004.html
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。