状态压缩
状态枚举
利用lowbit可以快速获取所有前继的状态(100110 -> 100100)
利用for(int i=x;i;i=(i-1)&x)
可以做到\(3^n\)枚举子集
位运算
\(\textcolor{red}{*}\)位运算优先级
注意:
1、加减号优先级高于一切位运算符(mid=l+r>>1);
2、按位运算符(&、|、^)优先级低于数值判断号((x&1)==(y&1));
异或
高斯消元
01trie
二进制拆分
按位分块
分位处理
[EER2]谔运算
P6623 [省选联考 2020 A 卷] 树
分位
考虑\(x\)对祖先的贡献,分位考虑,发现第\(i\)位在祖先链上的贡献为类似\(00011110\)的形式,则产生贡献的点是一段区间
01trie
异或操作,考虑01trie
发现区间加\(1\)操作无法维护,观察发现其实就是若干个结点交换儿子位置,但是在由高位到低位的01trie上每个结点都要交换,考虑由低位到高位建立01trie,此时只有右儿子有进位,递归处理右儿子即可
子集卷积 & 子集反演
见状压dp
标签:优先级,01trie,二进制,运算符,子集,相关,分位 From: https://www.cnblogs.com/zhone-lb/p/18518504