// 二进制最后一个1 i&-i // 移除二进制最后一个1 i -= i&-i i = i&(i-1) // 枚举s的子集 s = m for (int i=s; i!=0; i = (i-1)&s) { // code }