@(目录)
这些操作在状压DP中都很常用,灵活应用可以很好地降低码量,降低常数。
\(y\)= (\(x\)>>(\(i\)-\(1\)))&\(1\);
\(x\) ^= \(1\)<<(\(i\)-\(1\));
\(x\) |= \(1\)<<(\(i\)-\(1\));
\(x\) &= ~(\(1\)<<(\(i\)-\(1\)));
\(x\) = \(x\)&(\(x\)-1);
\(y\) = \(x\)&(-\(x\));
这也是树状数组中我们熟知的\(lowbit\)
\(x\)|=\(x\)+\(1\)
\(if\)(\(x\)&(\(x\)<<\(1\))) \(cout\)<<"\(YES\)";
判断是否有\(n\)个连续的\(1\)
\(if\)(\(x\)&(\(x\)<<\(1\))&&\(x\)&(\(x\)<<\(2\))...&&\(x\)&(\(x\)<<\(n\)-\(1\)))
定义\(sta\)为初始状态
\(for\)( \(int\) \(x\) = \(sta\) ; \(x\) ; \(x\) = ( ( \(x\) - \(1\) )&\(sta\)) )
\(cout\)<<\(x\);
原文:https://www.cnblogs.com/hzyhome/p/11658240.html