比赛手册

  1. 保持冷静,相信所有题都是可做的。
  2. 应当记录下来自己每一步的转化和处理,这要不了多长的时间。
  3. 如果在某个题一个步骤卡住的时间太长,并且没有什么比较大的进展,必须清理一下思路(比如换个题),然后再重新整理所有的推导。这个时长暂定为 \(30\) 分钟毫无进展。
  4. 思考的时候也应该遵循这里写的原则,不能无目的地思考。
  5. 如果没有思路,及时回忆思考的原则,或者写出目的,枚举可能的实现方法。
  6. 实现出现失误时,可以冷静想想本质上在做什么,能不能换一个实现思路。比如换个统计答案的方式,换一个枚举的变量。
  7. 当可以直接开始实现时,再停一停,想想本质上在维护一个什么过程,能不能找到某些性质使得实现更为简便,所有的步骤是否真的有必要这么做。

  1. 试着观察问题中本质不同的组合对象个数,它们很可能并没有那么多。
  2. 如果 DP 不出来,试着修改状态定义,或者放松 DP 过程中的限制,实际上可能枚举了不必要的限制。
  3. 如果实在想不出来,说明刻画可能错了,试着倒退几步,考虑是否有遗漏的性质 / 转化。
  4. 某个部分单独求不容易,可以试着放进整体里去计算。(例如:ABC220G 的左-右贡献单独算很难,直接放进求和里就可以推式子拆掉。)
  5. 续 4,这实际上就是说如果卡住了,试试我们要计算的东西完完整整的写出来。
  6. DP 的优化方法:
    • 转置原理(计数)
    • 压缩自动机 / 减少状态数(通用)
    • 忽略不优的转移(最优化)
    • 数据结构优化(通用)
    • 决策单调性优化 / 凸性(最优化)
    • 定义域-值域互换(单调的最优化DP)
    • 贡献延迟计算 / 费用提前计算