Tips

  1. int 类型函数末尾一定记得 return 0。
  2. 统计区间一个值个数的时候,可以尝试转化为记录最小值和最小值出现次数。
  3. 留时间检查 freopen 与注释。
  4. DP如果空间开不下尝试滚动数组,如果不能可以尝试换一种状态dp,将原先的状态换成dp内容。
  5. 一般 dp 数组记录的东西需要有最优性,就是说可以贪心的取更大。
  6. 排名类的问题可以转化为求和,通过 > 的数赋值为 1,< 的数赋值为 0(有时可以为 -1)
  7. dp 时可以用线段树维护 —— 不止维护之前的 dp 数组,也可以直接将一次转移转化为在上一个 dp 数组上直接操作。
  8. 值的种类个数不超过和的根号。
  9. 树上背包用是 n 乘值域的。
  10. 值的种类或极值趋于减少,可以考虑势能线段树。
  11. RGB三种颜色合并相互转化时,考虑替换成 123 与异或操作。
  12. 一般只区询的题有几种做法:直接维护(在线),扫描线(右端点右移维护左端点,离线),莫队(离线),分治(离线)。
  13. 求子区间权值和一般可以用增量法,右移右端点,维护新增区间的权值。
  14. 让你操作长度为 k 的区间,可以转化为对每个 mod k 同余的序列进行单点修改。
  15. 二进制题可以按位计算贡献
  16. 最小化最大值二分
  17. 虚树的点数为 O(叶子个数),在树分层算贡献时有用。
  18. 全局除以 2 操作会导致值的种类个数减少。log 次操作后会至多两种。
  19. 区间询问时,可以考虑预处理出每个点有贡献时最大的左端点。就可以转化成区间 < k 的贡献和。
  20. 哈曼顿距离考虑转化为切比雪夫距离。
  21. DP时考虑问题的组合意义。特别是连乘贡献时
  22. OI里面非常重要的几个思想:预处理,单调性,递归,记忆化。

posted on 2023-08-23 11:56  Evan_song  阅读(12)  评论(0)    收藏  举报