【算法2-2】常见优化技巧

对应进阶篇第 1 章。

评价算法的标准,除了正确性以外,最重要的就是程序的运行效率是否足够高,是否可以在限定的时间内处理完指定的数据。在“暴力枚举”一章中介绍了可以通过剔除无效操作来提升算法效率。除此之外,还可以用“单调性”和“空间换时间”来优化时间复杂度。将这两种思想结合,产生了单调栈和单调队列等工具。

这些技巧可以帮助我们排除无效选项,在一定范围内保持单调性,常常可以将一些问题求解的时间复杂度降到O(n),因此称为线性时间复杂度优化。


  1. P1102 - A-B 数对
  2. P1638 - 逛画展
  3. P1115 - 最大子段和
  4. P7072 - [CSP-J 2020] 直播获奖
  5. P2671 - [NOIP 2015 普及组] 求和
  6. P4147 - 玉蟾宫
  7. P2866 - [USACO06NOV] Bad Hair Day S
  8. P1950 - 长方形
  9. P2032 - 扫描
  10. P2216 - [HAOI2007] 理想的正方形
  11. UVA11572 - 唯一的雪花 Unique Snowflakes
  12. P4653 - [CEOI 2017] Sure Bet
  13. P3143 - [USACO16OPEN] Diamond Collector S
  14. P7910 - [CSP-J 2021] 插入排序
  15. P1578 - [WC2002] 奶牛浴场
  16. P3467 - [POI 2008] PLA-Postering
  17. P1886 - 【模板】单调队列 / 滑动窗口
  18. P2880 - [USACO07JAN] Balanced Lineup G
  19. P1714 - 切蛋糕
  20. P1725 - 琪露诺