Skip to content

位进制 ​

O(1)判断2的幂取mod ​

cpp
int modPowerOfTwo(int x, int mod) { return x & (mod - 1); }

判断是否是2的幂 ​

cpp
bool isPowerOfTwo(int n) { return n > 0 && (n & (n - 1)) == 0; }

遍历二进制的全部子集 ​

cpp
//降序
for (int s = m; s; s = (s - 1) & m)

遍历所有掩码的子掩码 ​

cpp
//复杂度:O(3^n)
for (int m = 0; m < (1 << n); ++m)
  // 降序遍历 m 的非空子集
  for (int s = m; s; s = (s - 1) & m)
// s 是 m 的一个非空子集