状压dp常用操作
最近在学状压dp,记录一下,避免忘记。
-
x&y
:\(x\) 和 \(y\) 是否有同一位都为 \(1\); -
(1<<(i-1))&x
:\(x\) 的第 \(i\) 位是否为 \(1\); -
x&(x<<1)
:\(x\) 是否有相邻两位都是 \(1\); -
x|=1<<(i-1)
:将 \(x\) 的第 \(i\) 位变为 \(1\); -
x&=x-1
:将 \(x\) 的最后一个 \(1\) 去掉; -
cur^=1
:将 \(\mathrm{cur}\) 在 \(0/1\) 之间转换(常用于滚动数组)。