这样的话方便做题思考一些, 以后碰见没有思路的题就看看。
-
首先还是要分析一些性质(这一步最好使用贪心), 看清楚题目要问什么, 先转换一下, 把形式化的题面变得抽象一些?
-
然后就是套路题了/hanx
主要是提供思路来着, 具体套路要看具体的记录
枚举
在数据范围不大的时候枚举一些量方便做题
模拟
搜索
记得记忆化
- DLX 精准覆盖问题
- A, IDA
感觉只有模拟赛会用到这种阴间玩意(骗分除外
分治
询问比较多的时候考虑猫树分治? 一般这种分治还会用在序列, 矩形等计数上, 感觉可以看作点分治的序列版本
- 点分治动态点分治等常见技巧
贪心
广泛运用, 一般出现在分析性质或者是最后一步快速求什么东西上, 比如说你化简成一个问题, 直接上贪心就是对的。
- 模拟费用流
- 要求什么最优排序, 可以考虑邻项交换
二分
二分和分治不太一样, 二分主要是二分答案, 拥有单调性/最大化最小等啥的
倍增
有时候可以替代二分(二进制诸位确定
但是一般用于快速的到达某一个状态, 比如说k级祖先等。
如果知道a, b可以推出a + b还具有结合律的话, 倍增是个好选择
动态规划
形式多样, 难在任何地方
-
各式各样的DP(
-
决策单调性优化
-
舍去不优解(比较难的问题里面都会有这些性质, 当你的DP状态不能再优化的时候, 可以注意一下是否所有的状态都会用上。
-
转移形式单一, 有时候是单一, 可以合并转移; 有时候是形式比较简单, 直接维护DP数组(比如用线段树, 平衡树维护之类的, Slope trick)
-
斜率优化 + 李超线段树
-
交换状态和值(这个时候一般都会有单调性帮助交换之后的转移
字符串
-
SAM
遇事不决就上SAM
-
SA
不会用
-
AC自动机和KMP, 还是十分重要的, 注意fail的性质, KMP最好建出KMP自动机去考虑问题, (注意KMP是均摊的
-
Hash 十分有用千万不要忘记
-
Manacher与回文自动机, 用的不多, 注意一下回文半径是十分有用的
-
广义后缀自动机, 考的不多, 注意建法
-
Lydon分解, 不会
数学
数论
-
gcd, lcm. 注意高精gcd, 讨论奇数偶数的哪个
-
数论函数, \(\phi \ \ \mu \ \ id \ \ \cdots\)
-
狄利克雷相关(暂时不太会贝尔级数和狄利克雷函数
-
中国剩余定理, 拓展中国剩余定理, exgcd
-
类欧几里得, 万能欧几里得(感觉很有趣但是就是没考过
-
卢卡斯定理和拓展卢卡斯和
Zcus -
BSGS
-
原根与阶(这个性质也比较多, 可以找个时间重新看一看
-
一群筛法
生成函数
多项式已经没有了, 但是生成函数还是有, 现在的重心可能是在生成函数推式子上了, CF还是有一些这样的题
- 线性递推 每次都忘记了, 现在也是忘记了, 大概是 \(A^n\) 对 刚开始反过来的系数序列取模
线性代数
详情见线性代数记录
- 向量矩阵
- 线性基
- 特征向量和特征矩阵
- 矩阵的对角化
- 奇奇怪怪的应用
群论
- 只知道burnside和Polya
- 置换相关
概率期望
概率顺推, 期望逆推? 比较经典的一句话
-
期望的线性性 $ \tt{E}(\tt{A} + \tt{B}) = E(\tt{A}) + E(\tt{B})$
-
什么依次操作操作合法, 可以看成枚举操作的排列, 遇见不合法的就跳过, 这样子也是正确的, 也就是 每种排列的贡献 / \(n!\) = 答案的期望。 (感觉这个很有用
数据结构
-
栈
-
队列
-
链表 (加入查前驱后继 = 删除查前驱后继 -> 链表维护
-
并查集 :带权并查集 , 拓展域并查集)
-
堆 :优先队列和左偏树, 模拟费用流当中很常见
-
分块:块状链表, 分块套树状数组(听说这个十分有用), 树分块(树分块有很多种)
分块是一种思想(对什么都可以分块, 例如分块打表), 更多科技见数据结构记录
-
单调栈: 线段树维护单调栈, 析合树相关; 单调队列等
-
ST表
-
树状数组和线段树
-
特殊的线段树等, 李超线段树, SegmentTreeBeats
-
平衡树相关: FHQ-treap 和 Splay
-
可持久化相关
-
KDT, LCT等不常见复杂数据结构
图论
感觉图论是比较重要也是比较有趣的一个考点, 但是平时模拟赛的图论题并不是很多?
- 无向图的DFS和BFS树, (DFS树只会有返祖边, BFS树只会在相邻两层中连边
- 强联通分量与双连通分量(圆方树
- 有向无环图的拓扑排序
- 不要忘记还有2-Sat
- 最小生成树(kruskal重构树解决只经过 \(\le k\) 的边的问题)
- 最短路(dij and spfa)
- 差分约束算法, 可做(a_i - a_j <= k || a_i - a_j >= k)
- K短路
- 同余最短路
- 斯坦纳树
- 最小直径生成树(没什么用
- 欧拉回路与欧拉路常见于构造题