|算法讨论|状压DP/位运算 学习笔记
2017-02-12 16:27
260 查看
题目
[状压DP]poj 3311:经典TSP问题
模板及讲解
状态压缩动态规划就是用于某种时候DP的状态难以表示时,使用二进制进行存储状态的一种动态规划。通常会用位运算进行操作:
位运算:
1、对x取反:
2、x+1(x为偶数):
3、2x:
4、2−x:
5、x的对应值(例如0对1,2对3,8对9):
6、构造0~n-1位二进制数全部为1:
7、构造形如10,100,100000即[0, k-1]全部为0,[k,k]为1,这样的二进制数:
状压DP常用:
1、将a的第k位修改为1:
2、将a的第k位修改为0:
3、取第k位:
经典问题:
TSP问题:poj 3311
[状压DP]poj 3311:经典TSP问题
模板及讲解
状态压缩动态规划就是用于某种时候DP的状态难以表示时,使用二进制进行存储状态的一种动态规划。通常会用位运算进行操作:
位运算:
1、对x取反:
~x
2、x+1(x为偶数):
x|1
3、2x:
1<<x
4、2−x:
1>>x
5、x的对应值(例如0对1,2对3,8对9):
x^1
6、构造0~n-1位二进制数全部为1:
(1<<n)-1
7、构造形如10,100,100000即[0, k-1]全部为0,[k,k]为1,这样的二进制数:
1<<(k-1)
状压DP常用:
1、将a的第k位修改为1:
a |= 1<<k;
2、将a的第k位修改为0:
a &= ~(1<<k);
3、取第k位:
a>>k & 1;
经典问题:
TSP问题:poj 3311
相关文章推荐
- |算法讨论|贪心算法 学习笔记
- 【算法学习笔记】84.序列DP 松弛+代价处理 CODE_VS 1048 石子归并
- |算法讨论|最短路 学习笔记
- |算法讨论|后缀数组 学习笔记
- |算法讨论|二分查找 学习笔记
- |算法讨论|无向图割点和桥 学习笔记
- 【算法学习笔记】85.破环为链 序列DP 松弛+代价 SJTU OJ 1073 能量项链
- BZOJ 2595: [Wc2008]游览计划 [DP 状压 斯坦纳树 spfa]【学习笔记】
- |算法讨论|强连通分量Tarjan 学习笔记
- C#数字图像处理算法学习笔记(二)--点运算与直方图
- |算法讨论|差分约束 学习笔记
- 【算法学习笔记】81.动态规划 分类讨论 SJTU OJ 1075 括号匹配升级
- |算法讨论|Trie树 学习笔记
- |算法讨论|树状数组 学习笔记
- |算法讨论|线段树1(大白书版本) 学习笔记
- |算法讨论|KMP 学习笔记
- |算法讨论|AC自动机 学习笔记
- |算法讨论|LCA 学习笔记
- |算法讨论|Hash表 学习笔记
- |算法讨论|并查集 学习笔记