博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
状态压缩的一些常用东西
阅读量:5348 次
发布时间:2019-06-15

本文共 414 字,大约阅读时间需要 1 分钟。

这四种运算在状压dp中有着广泛的应用,常见的应用如下:

1.判断一个数字x二进制下第i位是不是等于1。

方法:if ( ( ( 1 << ( i - 1 ) ) & x ) > 0)

将1左移i-1位,相当于制造了一个只有第i位上是1,其他位上都是0的二进制数。然后与x做与运算,如果结果>0,说明x第i位上是1,反之则是0。

2.将一个数字x二进制下第i位更改成1。

方法:x = x | ( 1<<(i-1) )

证明方法与1类似,此处不再重复证明。

3.把一个数字二进制下最靠右的第一个1去掉。

方法:
x=x&(x-1)
余数的一种运算方式:
从一个数n第一位开始模k,余m,令m乘以10+n的下一位,再去模k,直到n的最后一位,即为n/k的余数。
常用的位运算
1<<x的意思是2的x次方。

 

转载于:https://www.cnblogs.com/shanshuiyouxiangfeng/p/7819429.html

你可能感兴趣的文章
Hadoop框架之HDFS的shell操作
查看>>
mybatis 学习四 (上)resutlMap
查看>>
ES6学习之数组的扩展
查看>>
Lua 语言基本语法
查看>>
ARM 的Thumb状态测试
查看>>
windows下读取utf-8文件
查看>>
apache 启动不了的排查方法
查看>>
Java有没有goto?
查看>>
(转)makefile 的用法
查看>>
Linux云自动化运维第十六课
查看>>
1.秋招复习简单整理之红黑树性质
查看>>
hive基础2
查看>>
CocoaPods Mac App的安装和使用
查看>>
python 正则表达式匹配ip
查看>>
Flask实战-留言板-使用Faker生成虚拟数据 --
查看>>
解决VC++6.0 无法打开、无法添加工程文件
查看>>
ORA-01858: a non-numeric character was found where a numeric was expected
查看>>
Structure From Motion(二维运动图像中的三维重建)
查看>>
25复杂链表的复制
查看>>
2 Orchard汉化资源包的使用
查看>>