复习
- 字符串相关(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:对「路径不交」这个限制的刻画:选定一个点
,钦定 在 的子树外, 在 的子树内,则这覆盖了所有的情况。 - GJOJ 11.13 T2:将 BST 的判断转化成中序遍历。将树拍到 dfs 序上。
图论
- GJOJ 2024.2.17 T3:将图论问题直接转化成 DP 问题。和奇偶性相关用
处理。 - CF346D:有时分析图是很难解决问题的,因为问题依赖于图的整体情况。我们可以直接 DP,考虑一个点和它的入边/出边的关系。
- P3577:无向图搜索树上 DP。深度小,可以树上状压。注意写法。
- P8860:将连通性问题转化为最短路问题。(其实不会图论时就可以试试能不能最短路,反正也不会啥其它的)
- P6383:找到图性质后才能树形 DP,因为儿子受到父亲约束。
- P9331:经典的枚举两条路径的分叉点。用线段树优化建图跑最短路。
- CF1981E:生成树缩减边数规模。
- P7297:优化建图的时候,怎么建模可以可以从边权角度入手。如
这样的边权可以建出一条链。
DP
- P9272:牛逼的状态设计。
- AGC033D:值域定义域互换的技巧优化 DP。
- ARC101F:二元关系放到平面。对计数过程作约束使得计数不重不漏。
- CFgym103439H:树形 DP,注意写法,保证复杂度。
- CF111E:钦定枚举点的顺序,方便 DP 的转移。
- CF1476F:覆盖问题的状态设计。
- P6831:将哈希值放入状态设计中。
- P2832:经典质因数根号分治。
- GJOJ 10.18 T3:分析性质,meet in middle。
- CF280C:期望 DP 的技巧:指示器随机变量。
- ARC160F:01串的经典技巧:把小于等于
的设为 ,大于 的设为 。 - P9131:状压 DP 优化枚举子集的方式:折半;按
转移,每次加入一个元素。 - P8100:计数题的元素之间存在一些先后顺序的要求,应用 DAG 拓扑序计数。
- P10538:以时间作为维度去 DP。边转点。
其它
-
CF639E:贪心调整法出现等号怎么办?其实可以不关注顺序,只关注最优或最劣的情况。
-
P6521:先正难则反,然后容斥。容斥系数是组合数。
-
P3226:将序列问题放到二维平面。转化后题目就简单了。
-
P2824:万物皆可二分答案,然后使用经典
技巧缩小值域。 -
P8819,P8026:哈希的妙用,为了保证正确率可以多写几个模数。
-
AGC036C:转化操作,寻找操作的等价条件,使判定更简单。
-
CF1823F:树上随机游走板子。
-
P8162:使用 DP 修复贪心带来的不足。
-
GJOJ 9.27 T4:两个人在数轴上动,可以考虑刻画一个“特殊”的人的位置。
-
GJOJ 10.9 T3:网格图问题。边数缩减到
规模。 -
CF442C:这种贪心删数的问题,可以先猜一个结论:将什么删掉是不影响局面最优性的。
-
P3226:将数学限制转化成矩阵上的限制。
-
CF1994G / GJOJ 11.20 T3:列竖式,考虑进位。
-
P9017:初始状态和变化对状态的影响分开考虑。
-
P11189:涉及一些抽象操作的一定要尝试简化操作,这不仅依赖于套路经验之谈,也跟做题直觉有关系。比如这题带有差分意向的暗示,就是解题的关键。
-
ARC181D:逆序对的经典结论:交换相邻只会使逆序对数量减少
。 -
ARC171D:区间问题要尝试转化成差分的形式。
-
CF1895F:遇到
类似的条件要尝试转化,可以转成和最大最小值相关的。 这样的条件要联想到差分数组。 -
ARC187D:切记遇到极差相关的都可以考虑固定最小值。或者说遇到跟两个变量相关的都可以考虑固定某一个。
-
CF1511G:跟位运算有关的可以思考 Trie,倍增(固定了一个端点),逐位确定答案。
-
GJOJ 11.5 T4:归纳充要条件,然后直接计算。
-
GJOJ 11.16 T4:将丑陋的式子转化成对称的,绝对值拆成
。利用 的可重复贡献性计算。 -
GJOJ 11.21 T2:遇到二维坐标系上,
值域都很大的情况,应该想到将两维坐标系的贡献拆开,然后分开计算。一种经典的处理方式是,将 。 -
GJOJ 11.22 T2:当值域只有
的时候要往奇偶性上思考。 -
GJOJ 11.27 T4:当题目无从下手的时候,可以尝试从答案上下界考虑,使得决策更加的方便。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列1:轻松3步本地部署deepseek,普通电脑可用
· 按钮权限的设计及实现
· 【杂谈】分布式事务——高大上的无用知识?