0x01位运算
- 发生算术溢出时,32位无符号整数相当于自动对2 ^ 32取模。
- 1 << n = 2 ^ n,n << 1 = 2 * n,n >> 1 = 除以2向零取整(C++)。
- 发生算术溢出时,32位无符号整数相当于自动对2 ^ 32取模。
- 快速幂,快速乘模板:这里
- 二进制状态压缩:(bitset)
- lowbit运算
操作 | 运算 |
---|---|
取出n在二进制表示下的第k位 | (n >> k) & 1 |
取出整数n在二进制表示下的第0~k - 1位 (后k位) | n & ((1 << k) - 1) |
把整数n在二进制表示下的第k位取反 | n xor (1 << k) |
对整数n在二进制表示下的第k位赋值 1 | n | (1 << k) |
对整数n在二进制表示下的第k位赋值 0 | n & (1 << k) |
0x02 枚举,模拟,递推
- 前缀和(差分+前缀和实现区间修改)
0x03 递归
- 机器实现
0x04 二分
- 二分:浅谈二分的边界问题
- 三分法
0x05 排序
- 离散化:这里
- 求逆序对(归并排序)
- 归并排序:这里(还在咕咕咕)
0x06 倍增
- RMQ-ST算法
0x07 贪心
- 加工生产调度:这里(咕着呢…)