位运算与状态压缩DP.ppt

  1. 1、本文档共18页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 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

文档评论(0)

yan698698 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档