Tips

  1. 多重区间问题考虑分割点
  2. 易插入难删除的问题倒序解决
  3. 多个绝对值相加考虑拆开
  4. DP状态有后效性考虑 对状态加限制(加维)
  5. 如果最小值超过了 long long 请把初始值开到 1e18
  6. 数位dp clac函数记得清空cnt(updata:多测记得清空。。。)
  7. 强转是 (int)(l * 100) 而不是 (int)l * 100
  8. 多测输出换行
  9. 看空间
  10. 注意常数因子对程序运行效率的影响 某些复杂度不对的算法可以卡常
  11. function(a,a--) 属于 UB 行为,避免一个函数内传入的变量带有自增自减
  12. 博弈论题基本策略打 SG 函数表找规律,利用博弈论基本定理和 SG 函数的子局面合并(xor)
  13. dij 重载小于号成大于号
  14. 2-sat 按照拓扑序的反序赋值的原因:如果按正序赋值会出现 !i -> i 的情况。
  15. 多个限制不好同时满足可以考虑类似cdq的思路,先强制满足一个再去满足另一个。
  16. 无向图的构造问题可以考虑 DFS树,因为“无向图上非树边都是返祖边”。
  17. 前后缀最值可以用 k 维 BIT,好想又好写。
  18. 涉及整除可以往类欧/整除分块想,利用合法取值 \(\sqrt{n}\) 的性质。
  19. 一定要注意输出格式,不要连大众分都拿不到!!
  20. 遇见值域单调性的时候要多想,是全部单调还是分段单调或者是凸包。
  21. 仙人掌灵活赋点权
  22. 整体二分可以在最后加上一个询问表示无解
  23. 概期DP设计状态的时候大多是到停时的概率/期望
  24. 读题!看清楚题目里明示的性质,比如基环树啥的。
  25. 圆方树也是解决基环树的好方法。
  26. 构造题可以先考虑怎么构造出上下界。
  27. 一个看起来简单的题想很长时间想不出来可以尝试回退到基本结论,大概率在某一步有一种非常简单的做法。
  28. 多项式做前缀和相当于乘 \(\frac{1}{1-x}\)次数会+1
  29. 区间复杂询问考虑分治/扫描线
  30. 涉及区间最值的区间询问题考虑笛卡尔树/单调栈+扫描线
posted @ 2023-03-05 20:46  Kun_9  阅读(46)  评论(0编辑  收藏  举报