zoukankan      html  css  js  c++  java
  • 状态压缩DP之位运算总结

    介绍

      在进行DP题目分析时,针对状态或子状态可以抽象为 0 1 排列组合的题目时,将其 0 1 序列转化为二进制数,再而转换为十进制数,可以更加便捷的对其进行数据分析处理,减少因为混乱所造成的一些不必要的错误。魔鬼往往藏在细节之中。

    常用运算符(都是十进制数在二进制下所做的运算,返回十进制的值)

    1. & : X&Y ,与运算, 全1才为1,3(11)&2(10)=2(10)  。
    2. |  : X|Y ,或运算,有1即为1  , 3(11)|2(10)=3(11)  。
    3. ^ : X^Y ,异或运算,不同即为1 , 3(11)^2(10)=1(01)  。
    4. << : 左移运算符 , X<<Y ,相当于 X*(2的Y次方)   。
    5. >> : 右移运算符 , X>>Y ,相当于 X/(2的Y次方)   。

    常用操作(大多都是根据所想要的推公式)

    1. if(sta[i] | Y!=Y)  //判断 sta[i] 状态是否合法
    2. if(sta[i]&Y==0)       //判断 sta[i]与Y是否右重叠
    3. …………
  • 相关阅读:
    左旋转字符串
    swoole(8)http服务
    整数反转
    两数之和
    广度优先搜索
    快速排序
    JavaScript当中的eval函数
    JavaScript中的作用域链原理
    git push和git pull
    cherry-pick,revert和rebase使用的3-way合并策略
  • 原文地址:https://www.cnblogs.com/l1l1/p/8547184.html
Copyright © 2011-2022 走看看