一般性的解题思维

如果没见过类似的结构、套路、性质、想法,那么想不出来这道题目十分正常。
本文收录了一些,在解题中反复出现的思维方法和思考路径。

解释思维的方法,无非就是,要么分析性质,要么根据经验,要么灵光一闪吧。本文章旨在记录非常常见的经验,以及分析的基本方法。

步骤

  1. 摸性质、猜性质
  2. 试算法、摸性质

按题型分类的思考起点

  1. 操作:思考操作顺序、操作影响、操作次数、操作取值、将操作顺序当作序列(红蓝球、禁忌数字)
  2. 新定义:先考虑这个定义单独怎么求(f(A)表示序列连通块数量,区间神秘数)。
  3. 博弈题:找 必胜 or 必败 态。然后证明,若不处在 必胜 or 必败 态,则一定处于相反态。
  4. 计数题(所有方案的某种量的总和):考虑不同主体如何产生贡献。
  5. 构造题:考虑无解、按位构造、考虑上/下 界
  6. 交互题:一个常见思路:倒推题目,即假装我知道了 xxx,那么这道题就可以做了。为了知道 xxx,我需要。。。

常见的思考方法

  1. 剔除无用元素(2025 CSPST2、最短路公共路径)

  2. 简化问题,弱化约束,去掉限制,关注部分分,旁敲侧击地写题

  3. 刻画答案的样貌

  4. 正难则反

  5. 猜证结论

  6. 排序

  7. 考虑一个解被计入的情况

  8. 分类讨论:

    1. 数据密度明显不同:完全图
    2. 情况本质不同:<=,正负,奇偶
    3. 情况本身极少:相交/包含/不交
  9. 关注奇怪的地方

数据范围的提示

  1. n log n:排序,贪心,dp+优化
  2. n^2, nm, nmk:dp
  3. n^3:区间dp
  4. 20:状压DP、SOS DP
  5. m^3 log n:矩阵加速 DP
  6. 带 log:二分、排序、数据结构

题目暗示的算法思考方向

  1. 二维网格:枚举上下边界、按行/列 DP、格点 DP。
  2. 计数题:枚举钦定某一主体、考虑 DP
  3. 最优化:二分答案、DP、贪心、最短路
  4. 区间操作:前缀和/差分、线段树
  5. 二元关系:图论建模
  6. 可行性:DP、并查集、二分图
  7. 序列计数:DP