- 字符串相关(KMP,Manacher,Trie)
- 莫队
- Tarjan
- 猫树、整体二分
- 决策单调性、二分栈、二分队列
- 奇怪的线段树(李超树、势能线段树)
- 高斯消元
- 线性基
- 数学
- 博弈论
DS
- P9200:绝对值可以丢到数轴上。加权中位数,可以看作权值个重复的点。
- P5852:对子树做修改,一般考虑 DFS 序。有个性质:每次修改的区间都是不交叉的。这可能是关键的性质。
- GJOJ 2024.2.20,P6009:静态区间查询,考虑猫树分治。
- P6144:线段树维护多项式优化 DP,将 DP 值放到值域上。
- LOJ 花火:存在二维偏序关系,放到二维平面,配合决策单调性。
- P6847:线段树合并优化 DP,需要标记永久化实现区间 chkmn。
- P7603:减半警报器。
- P6864:矩阵维护一些信息的合并。
- GJOJ 10.18 T4:扫描线万能大法。
- P9130:楼房重建线段树。
- CF2030F:将转化后的模型套用经典的、通用的解法。就像这题,转化成线段相交模型,就去尝试跟排序有关的做法。
- P6072:对「路径不交」这个限制的刻画:选定一个点 \(u\),钦定 \(a,b\) 在 \(u\) 的子树外,\(c,d\) 在 \(u\) 的子树内,则这覆盖了所有的情况。
图论
- GJOJ 2024.2.17 T3:将图论问题直接转化成 DP 问题。和奇偶性相关用 \(\bmod 2\) 处理。
- CF346D:有时分析图是很难解决问题的,因为问题依赖于图的整体情况。我们可以直接 DP,考虑一个点和它的入边/出边的关系。
- P3577:无向图搜索树上 DP。深度小,可以树上状压。注意写法。
- P8860:将连通性问题转化为最短路问题。(其实不会图论时就可以试试能不能最短路,反正也不会啥其它的)
- P6383:找到图性质后才能树形 DP,因为儿子受到父亲约束。
- P9331:经典的枚举两条路径的分叉点。用线段树优化建图跑最短路。
- CF1981E:生成树缩减边数规模。
- P7297:优化建图的时候,怎么建模可以可以从边权角度入手。如 \(|i-j|\) 这样的边权可以建出一条链。
DP
- P9272:牛逼的状态设计。
- AGC033D:值域定义域互换的技巧优化 DP。
- ARC101F:二元关系放到平面。对计数过程作约束使得计数不重不漏。
- CFgym103439H:树形 DP,注意写法,保证复杂度。
- CF111E:钦定枚举点的顺序,方便 DP 的转移。
- CF1476F:覆盖问题的状态设计。
- P6831:将哈希值放入状态设计中。
- P2832:经典质因数根号分治。
- GJOJ 10.18 T3:分析性质,meet in middle。
- CF280C:期望 DP 的技巧:指示器随机变量。
- ARC160F:01串的经典技巧:把小于等于 \(x\) 的设为 \(1\),大于 \(x\) 的设为 \(0\)。
- P9131:状压 DP 优化枚举子集的方式:折半;按 \(|S|\) 转移,每次加入一个元素。
- P8100:计数题的元素之间存在一些先后顺序的要求,应用 DAG 拓扑序计数。
其它
-
CF639E:贪心调整法出现等号怎么办?其实可以不关注顺序,只关注最优或最劣的情况。
-
P6521:先正难则反,然后容斥。容斥系数是组合数。
-
P3226:将序列问题放到二维平面。转化后题目就简单了。
-
P2824:万物皆可二分答案,然后使用经典 \(01\) 技巧缩小值域。
-
P8819,P8026:哈希的妙用,为了保证正确率可以多写几个模数。
-
AGC036C:转化操作,寻找操作的等价条件,使判定更简单。
-
CF1823F:树上随机游走板子。
-
P8162:使用 DP 修复贪心带来的不足。
-
GJOJ 9.27 T4:两个人在数轴上动,可以考虑刻画一个“特殊”的人的位置。
-
GJOJ 10.9 T3:网格图问题。边数缩减到 \(\mathcal{O}(nm)\) 规模。
-
CF442C:这种贪心删数的问题,可以先猜一个结论:将什么删掉是不影响局面最优性的。
-
P3226:将数学限制转化成矩阵上的限制。
-
CF1994G:列竖式,考虑进位。
-
P9017:初始状态和变化对状态的影响分开考虑。
-
P11189:涉及一些抽象操作的一定要尝试简化操作,这不仅依赖于套路经验之谈,也跟做题直觉有关系。比如这题带有差分意向的暗示,就是解题的关键。
-
ARC181D:逆序对的经典结论:交换相邻只会使逆序对数量减少 \(1\)。
-
ARC171D:区间问题要尝试转化成差分的形式。
-
CF1895F:遇到 \(\exist i,s.t.…\) 类似的条件要尝试转化,可以转成和最大最小值相关的。\(|a_i−a_{i−1}|\) 这样的条件要联想到差分数组。
-
ARC187D:切记遇到极差相关的都可以考虑固定最小值。或者说遇到跟两个变量相关的都可以考虑固定某一个。
-
CF1511G::跟位运算有关的可以思考 Trie,倍增(固定了一个端点),逐位确定答案。