- 1、本文档共18页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
位运算与状态压缩DP
状态的表示——状态压缩DP 二进制操作 二进制操作又叫做位运算,这是计算机的基本,当然也是程序的基本,不过我们却很少去了解这个东西。 二进制有很多用处,常用来提高程序的效率,不过这些都是底层的东西,ACM是用不上的,还有一个用处就是压缩数据,就是用二进制来表示复杂的状态,然后通过位运算来完成问题的求解,这样能大大提高算法的效率,这样的状态表示经常用来优化DP或者是搜索。。。 下面先讲讲常用的位运算 位运算 左移 在很多语言里左移的符号位,有些语言和伪代码常用shl 假设有个变量x=1; 那么x=x1表示的意思如下: x: 0000000000000001(二进制表示) x1:0000000000000010 (也就是把x的每一位向左移动1位的结果,右边不够的用0添上) 此时x=x1 ==2,其实可以看做乘2 xi 表示的就是左移i位,可以看做乘 i 次2 位运算 右移 在很多语言里右移的符号位,有些语言和伪代码常用shr 假设有个变量x=2; 那么x=x1表示的意思如下: x: 0000000000000010(二进制表示) x1:0000000000000001 (也就是把x的每一位向右移动1位的结果,左边不够的用0添上) 此时x=x1 ==1,其实可以看做除2 xi 表示的就是右移i位,可以看做除 i 次2 位运算 或运算 在很多语言里或运算的符号位 |,这个与逻辑运算符 || 是有区别的,而一些语言和伪代码也用 or 表示 加上x=101 y=010(都是二进制表示) 那么x|y表示如下 x: 101 y: 010 x|y: 111 其实也就是将x和y表示成二进制,然后按位做或运算 此时x|y==7(10进制表示) 位运算 与运算 在很多语言里或运算的符号位 ,这个与逻辑运算符 是有区别的,而一些语言和伪代码也用 and 表示 加上x=101 y=010(都是二进制表示) 那么xy表示如下 x: 101 y: 010 xy: 000 其实也就是将x和y表示成二进制,然后按位做与运算 此时xy==0(10进制表示) 位运算 非运算 在很多语言里或运算的符号位 ~,而一些语言和伪代码也用 not 表示 加上x=101(都是二进制表示) 那么~x表示如下 x: 101 ~x: 010 其实也就是将x表示成二进制,然后按位做取反运算 此时~x==2(10进制表示) 位运算 异或运算 在很多语言里或运算的符号位 ^,而一些语言和伪代码也用 xor 表示 加上x=1010 y=1100 (都是二进制表示) 那么x^y表示如下 x: 1010 y: 1100 x^y: 0110 其实也就是将x和y表示成二进制,然后按位做异或运算,也就是相同为0,不同为1 此时x^y==6(10进制表示) 位运算 获取一个或多个固定位的值 假设x=1010(10进制的10) 我们要获取从左边数第2为的值,那么我们可以这样来取 x(11)也就是 x: 1010 11: 0010 x(11) 0010 这样我们就可以通过判断x(12)是否等于0来知道这一位是0还是1了 当然我们可以用x(32)来取得第3位和第4位 位运算 把一个或多个固定位的值置零 假设x=1010(10进制的10) 我们要把从左边数第2为的值置零,那么我们可以这样来做 x(~(11))也就是 x: 1010 ~(11): 1101 x(~(11)) 1000 当然我们可以用x(~(32))来把第3位和第4位置零 位运算 把一个或多个固定位的值取反 假设x=1010(10进制的10) 我们要把从左边数第2为的值取反,那么我们可以这样来做 x^(~(11))也就是 如果x=1000 x: 1010 1000 11: 0010
您可能关注的文档
- 广东电力发展历程.ppt
- 华工网络教育大学物理随堂练习答案.doc
- SCADA(电力监控)系统介绍.ppt
- 从我国CAP指南更新看CARTIPs研究的重要意义.pptx
- 电力系统自动化 第一章 自动准同期.ppt
- 气瓶检验员继续培训记录.doc
- 以太网供电技术探讨.ppt
- 电力系统过电压-第6章-操作过电压.ppt
- 集成运算放大器的基础知识 图解.ppt
- 离散数学 第五章:二元运算及其性质1.ppt
- 2023年三明清流县畜牧兽医水产中心动物检疫协检员招聘考试真题.docx
- 2023年乐山市计量测试所招聘考试真题.docx
- 2023年柳州市潭中路第二小学(本部总部)招聘考试真题.docx
- 2023年昆明市教工第一幼儿园招聘考试真题.docx
- 2023年普洱市紧急救援中心招聘考试真题.docx
- 2023年常德市澧县部分镇农业综合服务中心定向选调考试真题.docx
- 2023年雅安市天全县招聘县属国有企业高级管理人员考试真题.docx
- 2023年文山州砚山县阿猛中心卫生院招聘考试真题.docx
- 2023年大庆市城市管理综合执法局所属事业单位选调工作人员考试真题.docx
- 2023年包头稀土高新区区属事业单位引进高层次和人才考试真题.docx
文档评论(0)