您的位置:首页 > 其它

|算法讨论|状压DP/位运算 学习笔记

2017-02-12 16:27 260 查看
题目

[状压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
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: