- 力扣 1371
- 力扣 6195
- 力扣 1373
- 环形最小费用问题 => 复杂版: 两维环形
- 倍增与二分的区别
-
思维题 + 离散化 / 差分应用
Acwing 101
Acwing 2014
Acwing 4007 - 区间差分和点差分的区别: 需要做一个转化
- 环图
- O(n)时间求出拥有两种状态的相等数量的最大区间
- 整数拆分的性质
- 基环树的最基本性质
(可以跟第9题的环图相结合, 第9题的环图是无向图, 该题是有向图, 共同点是点的度数 <= 2)
基环树 - 一串二进制的枚举方法有两种: 二进制枚举(O(2n×n)), dfs搜索(O(2n))
- Acwing 114
- Acwing 115
- Acwing 118
- Acwing 119
- Acwing 1726
- Acwing 121
- Acwing 124
- 子矩阵: Acwing 126 | Acwing 4405
- Acwing 127
- Acwing 4705
- Leetcode 2444
- Acwing 137
- Acwing 139
- Acwing 141
- Acwing 146
- Acwing 149
- 包含所有情况的中缀表达式计算 Acwing 151
- Acwing 131
- Acwing 155
- Acwing 152
- Acwing 157
- Acwing 158
- Acwing 150
- 当定义的阶段无法满足时需要重新考虑, 以及如何求出具体方案
- 背包问题中的不超过与至少的状态区别
- 分组背包
- 可行性问题与最优化问题的区别 => lyd视频讲解
- Acwing 280
- 环形区间问题
- 区间dp: 弄清状态初始化
- 区间dp: 弄清划分区间该如何取值, 以及保证状态存在最优子结构性质
- 区间dp计数问题
- 树形背包问题1
树形背包问题2 - 树形dp换根1
树形dp换根2 - 双关键字查找
- 环形问题1
环形问题2
两种环形问题的解决方法: 1.枚举断开的位置 2.破环成链 - 非棋盘问题的状压dp
- 扫描线
扫描线2 - 倍增优化dp基础=>RMQ
倍增优化难题 - 二分的一个坑/倍增在树状数组上的实现
- 手动模拟松弛操作
(二次遍历同样可以看作是连了一条边, 当更新一个节点的最值时, 需要满足前驱节点已经是最值即可) - 反质数
- 动规与二分的两种重要模型
- 在线性dp中,当第三维的决策会随着状态推移不断增加, 此时就可以用数据结构来优化掉第三维
例题2 - 矩阵顺时针旋转90°的方法
- 利用区间dp的思想从n4->n3完成floyd算法
- 无向图的最小环问题
- 深入理解bellman-ford的迭代思想(其实迭代就是动规的体现), 还有floyd不按照边数进行阶段划分的原因, 以及二进制拼凑与矩阵乘法的共同点
- 方案数问题
- 爆搜的剪枝作用就是不让其递归到叶节点
- 排序
- 容斥原理
- 求两个数在固定数轴上的距离
- h指数, 典型的特征就是每次只需要考虑最后的几个数是否满足(单调)
- 复杂的边界
- 区间求交问题1
区间求交问题2
区间求交问题3 - 去重问题
- CF思维题(01矩阵)
- 寻找符合条件的子区间
- 判断某个方向上距离该点最近的是哪个点
- 点进行旋转的坐标变换, 以及通过四条边的坐标来确定一个矩形
- 二进制直接相加/相乘
USACO错题集
- 当有向图的出度 == 1时, O(n)的方法找环 (一般的有向图找环需要用tarjan算法, 否则就是暴力枚举每个点, 时间复杂度为O(n*m))
- 枚举的时候, 估算的时间复杂度很大时, 需要寻找题目条件, 找到一种枚举量实际上不会很大的方法
- 能够整除的一些性质
- 求循环的数中, 两个数相差的距离 | 虽然数字是从1开始的, 但是可以用从0开始的下标来表示(可以直接取模)
- 重要的是能够分析来缩小搜索的范围
- 树形类的dp问题都是考虑子树继续的转移(通过子树转移恰好是线性的, 并且不需要考虑子树的具体构造等优点)
- 类似于传递闭包, 关系会变化的情况
- 2与5的性质
- 丑数
- 丑数升级版
- 一个节点多个状态(分层图)
- 裴蜀定理的一个结论
- 上一题的升级版
- 巧妙的建图方式
- 排序不等式模型(在考虑贪心的问题时, 需要从模型作为切入点, 不能仔细考虑所有的情况)
- dp中的方案数去重
- 求出拓扑序的所有排列
- 种类数的背包模型 + 求字典序最小的具体方案
- 存在不能重复经过同一个点的限制
- 三种类型相同的递归 + 剪枝
递归与剪枝
递归与剪枝
递归与剪枝
(当坑位的大小不相等时, 考虑数选坑位, 当坑位大小相等时, 考虑坑位选数) - 字符串的搜索剪枝
- 要搜索行数和列数很小的矩阵时, 可以利用构造进行dfs(即不按照行或列的顺序搜, 自定义顺序)
leetcode + 周赛 错题集
kuangbin专题
蓝桥
- 典型的弹珠模型
弹珠模型 - 枚举总方案数运用乘法原理时, 需要找到枚举的分界点, 使得其他条件不会相互约束
- 分治思想
- 三维差分, 以及二分的一种运用(减少判定的次数)
- 易错的贪心思路
- 排序不等式贪心
- 乘积贪心
- 后缀表达式在计算的时候相当于中缀添加括号
- 贪心, 前缀和在y轴上的应用
- 树形dp求具体方案
- 求方案数的题目可以进行转换
- 倍增优化求方案数不适用的情况
- 更相减损法的变形(求x, 用x能够表示出其他所有的整数等类型的题目的解法)
- 表达式当符号与数字数量不匹配时该如何求解 | 自定义递归顺序