为什么说是点点,因为我也知道太少了
太基础的不想写,就写了些最近觉得比较巧妙的运用
就当我是写来给自己备忘的吧
其实我也想解释一下,但好像看代码都能看懂就应该不用了吧
正文
集合中单独取出每一位
当然不是一位位试然后与一下判断
我智障了,重发一个
for (int j = s; j > 0; j -= lowbit(j)) //use the lowbit(j)
之前的智障代码
for (int j = s; j > 0; j -= lj){
i = (s & (lj = lowbit(j));
集合中枚举少一个元素的子集(s^i)
这在状压dp中经常用,特别是我写的棋盘状压dp
我才不会说就是上一个的与改成异或的
for (int j = s; j > 0; j -= lj)
i = (s ^ (lj = lowbit(j));
集合中枚举子集
就是因为这个在POI2004prz中被坑了好久
这就是我在讲对拍相关的博客中对prz念念不忘的原因
为了方便,不含空集
for (int j = s; j > 0; j = s & (j - 1)) //use the j