状态压缩 DP 学习笔记
来源:互联网 发布:什么软件下载最好 编辑:程序博客网 时间:2024/06/05 08:51
1.集合的二进制表示
对于一个全集
例如:
全集
U={a1,a2,a3,a4,a5}
子集A={a1,a3,a5}
那么我们可以用
2.集合的交/并/补集运算
对于全集
A∩B=a and b
A∪B=a or b
∁UA=(not a)and U
可以发现,集合的交/并/补集运算是符合位运算的特点的。
例如:
全集
U={a1,a2,a3,a4,a5}
子集A={a1,a3}
子集B={a2,a4}
A∪B=a or b=(00101)2or(01010)2=(01111)2
={a1,a2,a3,a4}
A∩B=a and b=(00101)2and(01010)2=(00000)2=∅
∁UA=(not a) =not(00101)2=(11010)2
={a2,a4,a5}
为什么要
3.状态压缩 DP
「状态压缩 DP 」指记录当前集合的状态,在集合上进行转移的DP。
在一些问题上,我们通常需要存储高维(四、五维以上),而且状态的范围很低(一般为存在和不存在两种),此时开高维数组的常数会呈几何倍数增加,这时我们就要用「状态压缩」来把多层状态压成一个整数。压缩状态的方式有很多,我们常用的就是「以集合的形式存储状态」。
「状态压缩DP」一般用于解决无已知多项式算法的NP完全问题(如旅行商问题)。由于需要枚举集合,所以它的复杂度是指数级别的,一般为
4.一些例题
正在施工中
- 学习笔记:状态压缩DP
- 状态压缩 DP 学习笔记
- 状态压缩 DP 入门课堂笔记
- 状态压缩dp学习小记part1
- 状态压缩dp学习小记part2
- 状态压缩dp学习 + poj3254(最简单的状态压缩dp)
- 状态压缩dp
- pku1038状态压缩dp
- 状态压缩DP 入门
- HDU1074 状态压缩DP
- Poj3254 状态压缩DP
- 状态压缩DP入门
- 【状态压缩DP】互不侵犯
- 【状态压缩DP】电子竞技
- HDU1074 状态压缩DP
- 【状态压缩DP】互不侵犯
- 状态压缩 DP AHU420
- HDU2167 状态压缩DP
- 实时任务的创建与唤醒
- Ubuntu16.04+Caffe(CPU Only)
- Java--javadoc命令生成说明书
- Java for循环输出三角形
- LeetCode 17. Letter Combinations of a Phone Number
- 状态压缩 DP 学习笔记
- WebView---Android与js交互实例
- ICPCCamp2017 Day 4 F Factory(三分套三分)
- CSS 学习笔记 01
- new sample
- 卡尔曼滤波_3(EKF)
- 关于IN查询的的陷阱
- linux进程通信之消息队列
- 知识点巩固3 (网络基础)