位运算在状态压缩DP的运用技巧


位运算是既基础又好用的运算方法,它的实用性主要体现在状态压缩DP上,这也是状态压缩DP的难度所在,


如果不了解位运算,状态压缩DP会觉得很难理解。。。


接下来是位运算的实现技巧:


如果要获得 n 的第 i 位的数据(0还是1),判断(n&(1<<i)),若真,为1,假,为0;

                                                                                                                                                                     //这里的第 i 位为从右往左从0开始数的

如果要设置 n 的第 i 位为1,n=(n |(1<<i));                                                                             


如果要设置 n 的第 i 位为0,n=(n &(~(1<<i));


如果要取出 n 的最后一个1 (lowbit):(n &(-n)) (这里利用的是负数取反加1实际上改变的是二进制最低位的1这个性质)

如20(10100)得到 4(100)



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值