《算法竞赛进阶指南》总结——0x00 基本算法

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位赋值 1n | (1 << k)
对整数n在二进制表示下的第k位赋值 0n & (1 << k)

0x02 枚举,模拟,递推

  • 前缀和(差分+前缀和实现区间修改)

0x03 递归

  • 机器实现

0x04 二分

0x05 排序

  • 离散化:这里
  • 求逆序对(归并排序)
  • 归并排序:这里(还在咕咕咕)

0x06 倍增

  • RMQ-ST算法

0x07 贪心

  • 加工生产调度:这里(咕着呢…)

习题:…

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值