acwing-提高课

目录

dfs

递归

宽搜

递推

数学

贪心

差分

二分

RMQ

子序列

线段树

二分图

位运算

树形dp

前缀和

区间dp

数位dp

破环成链

可持久化

背包问题

斜率优化

差分约束

拓扑排序

归并排序

高精度乘法

状态压缩dp

状态机模型

最小生成树

强连通分量

双连通分量

spfa找负环

单调队列优化

单源最短路径

求解方案数目

最近公共祖先

图论问题总结

floyd算法及其变形

欧拉路径与欧拉回路


106 动态中位数(c++-python3 对顶堆)

dfs

dfs总结

dfs之连通性模型

1112 迷宫(python3 dfs检验连通性)

1113 红与黑(python3 dfs检验连通性)

dfs之搜索顺序

1116 马走日(python3 dfs之搜索顺序)

1117 单词接龙(python3 dfs之搜索顺序)

1118 分成互质组(python3 dfs之搜索顺序)

dfs之剪枝

165 小猫爬山(python3 dfs之剪枝)

166 数独(python3 dfs之剪枝)

167 木棒(python3 dfs之剪枝)

168 生日蛋糕(python3 dfs之剪枝)

迭代加深

170 加成序列(python3 迭代加深)

双向dfs

171 送礼物(python3 双向dfs--空间换时间思想)

IDA*

python在递归方法中传递引用类型参数容易发生的错误

180 排书(python3 IDA*)

181 回转游戏(python3 IDA*--技巧使得代码编写简单一点)

递归

97 约数之和(递归-分治)

98 分形之城(python3 找规律,递归-分治)

递归

记忆化搜索声明数组的技巧

宽搜

bfs总结

flood fill

1097 池塘计数(python3 flood fill--bfs)

1098 城堡问题(python3 flood fill、二进制移位操作)

1106 山峰和山谷(python3 flood fill--判断连通块的类型)

最短路模型

1076 迷宫问题(python3 bfs 记录最短路方案)

188 武士风度的牛(python3 bfs)

1100 抓住那头牛(python3 bfs)

多源bfs

173 矩阵距离(python3 多源bfs)

最小步数模型

1107 魔板(python3 最小步数模型--记录字典序最小的方案)

双端队列广搜

175 电路维修(python3 双端队列广搜)

bfs的优化--双向广搜和A*

190 字串变换(python3 双向广搜)

179 八数码(python3 单向bfs搜索,双向广搜,A*算法优化)

178 第K短路(python3 A*算法优化)

递推

1075 数字转换(python3 树形dp-树的最长路径、递推)

300 任务安排1(python3 动态规划)

95 费解的开关(递推)

数学

数学知识总结

筛质数,分解质因数,快速幂

866 试除法判定质数(python3)

867 分解质因数(python3 试除法分解质因数)

246 区间最大公约数(c++-java 线段树)

1075 数字转换(快速求解约数之和)

1292 哥德巴赫猜想(python3 线性筛)

1293 夏洛克和他的girl(python3 二分图、线性筛)

196 质数距离(python3 筛某一个区间的质数)

197 阶乘分解(python3 考虑枚举顺序)

1289 序列的第k个数(python3 快速幂)

1290 越狱(python3 逆向思维-快速幂)

约数个数,欧拉函数

1291 轻拍牛头(python3 约数个数--反过来求解)

1294 樱花(python3 公式化简,阶乘分解)

198 反素数(python3 dfs)

200 Hankson的趣味题(python3 暴力枚举优化)

201 可见的点(python3 线性筛求欧拉函数)

220 最大公约数(python3 线性筛求解欧拉函数)

97 约数之和(递归-分治)

矩阵乘法

1303 斐波那契前 n 项和(python3 矩阵乘法)

1304 佳佳的斐波那契(python3 矩阵乘法)

组合计数

组合计数类问题

885 求组合数 I(python3 递推法)

886 求组合数 II(python3 组合计数--阶乘,逆元,费马小定理)

887 求组合数 III(python3 组合计数--卢卡斯定理)

889 满足条件的01序列(python3 卡特兰数)

1307 牡牛和牝牛(组合计数-递推)

1308 方程的解(python3 组合计数--隔板法)

1309 车的放置(python3 组合计数--乘法原理和加法原理)

1315 网格(python3 卡特兰数,分解质因数)

1316 有趣的数列(python3 卡特兰数--分解质因数 + 快速幂)

高斯消元

207 球形空间产生器(python3 高斯消元求解线性方程组)

容斥原理

214 Devu和鲜花(python3 容斥原理,隔板法)

概率与数学期望

217 绿豆蛙的归宿(python3 数学期望)

218 扑克牌(python3 数学期望)

博弈论

1319 移棋子游戏(python3 sg函数模板)

数学公式

105 七夕祭(python3 环形均分纸牌问题、绝对值不等式)

贪心

125 耍杂技的牛(python3 贪心)

1010 拦截导弹(python3 最长上升子序列扩展)

100 增减序列(python3 差分、贪心)

差分

100 增减序列(python3 差分、贪心)

二分

102 最佳牛围栏(python3 枚举、实数二分)

RMQ

1273 天才的记忆(python3 RMQ)

子序列

895 最长上升子序列(python3)

1017 怪盗基德的滑翔翼(python3 最长上升子序列扩展)

1014 登山(python3 最长上升子序列扩展)

482 合唱队形(python3 最长上升子序列扩展)

1012 友好城市(python3 转化-最长上升子序列问题)

1016 最大上升子序列和(python3)

1010 拦截导弹(python3 最长上升子序列扩展)

187 导弹防御系统(python3 最长上升子序列 + dfs)

272 最长公共上升子序列(python3)

线段树

线段树适用于区间的的动态插入,修改,查询的数据结构,时间复杂度可以控制在O(nlogn)。

1275 最大数(c++-java 不带有懒标记的线段树)

245 你能回答这些问题吗(c++-java 线段树)

246 区间最大公约数(c++-java 线段树)

243 一个简单的整数问题2(c++-java 线段树)

1277 维护序列(c++-java 线段树)这道题目包含了区间的加法和乘法,是一道关于两个懒标记的综合题目

二分图

对于棋盘类的问题,有两种解决方法:① 状态压缩dp;② 二分图

二分图总结

860 染色法判定二分图(python3 dfs、bfs)

257 关押罪犯(python3 二分 + 判断是否是二分图)

861 二分图的最大匹配(python3 匈牙利算法找二分图的最大匹配)

372 棋盘覆盖(python3 二分图的最大匹配-匈牙利算法)

376 机器任务(python3 最小点覆盖)

378 骑士放置(c++-python3 最大独立集)

379 捉迷藏(python3 最小路径重复点覆盖)

位运算

 90 64位整数乘法(龟速乘)

树形dp

285 没有上司的舞会(python3 树形dp 三个辅助数组来建图)

1072 树的最长路径(python3 树形dp)

1073 树的中心(python3 树形dp)

1075 数字转换(python3 树形dp-树的最长路径扩展、递推)

1074 二叉苹果树(python3 树形dp)

323 战略游戏(python3 树形dp)

1077 皇宫看守(python3 树形dp)

前缀和

99 激光炸弹(python3 二维前缀和)

区间dp

区间dp问题

282 石子合并(python3 区间dp)

1068 环形石子合并(python3 环形区间变成链的技巧)

320 能量项链(python3 环形区间dp)

1069 凸多边形的划分(python3 区间dp + 高精度)

479 加分二叉树(python3 区间dp)当题目中还需要额外条件的时候可以使用额外的数组来记录最佳方案

321 棋盘分割(python3 高维区间dp 记忆化搜索)

数位dp

数位dp总结(python3)

递推求解组合数Cxn(python3)

1081 度的数量(python3 数位dp)

1082 数字游戏(python3 数位dp)

1083 Windy数(python3 数位dp)

1084 数字游戏 II(python3 数位dp)

1085 不要62(python3 数位dp)

1086 恨7不成妻(c++-python3 数位dp)

破环成链

1068 环形石子合并(python3 环形区间变成链的技巧)

1088 旅行问题(python3 单调队列优化)

可持久化

256 最大异或和(可持久化Trie树)

背包问题

423 采药(python3 零一背包问题)

1024 装箱问题(python3 零一背包问题)

3 完全背包问题(python3)

二维费用的背包问题(python3)

1022 宠物小精灵之收服(python3 二维费用的零一背包问题)

278 数字组合(python3 零一背包扩展求方案数目)

4 多重背包问题 I(python3 零一背包问题的扩展)

1019 庆功会(python3 多重背包问题)

1023 买书(python3 完全背包问题求方案数)

背包问题体积限制的类型与空间优化问题

1020 潜水员(python3 二维费用的零一背包问题)

12 背包问题求具体方案(python3 零一背包问题求具体方案)

9 分组背包问题(python3)

1013 机器分配(python3 多重与分组背包问题扩展)

487 金明的预算方案(c++-python3 分组背包问题扩展)

426 开心的金明(python3 零一背包问题)

1021 货币系统(python3 完全背包问题求方案数)

532 货币系统(python3 完全背包问题)

5 多重背包问题 II(python3 二进制优化-转为零一背包问题求解)

7 混合背包问题(python3)

10 有依赖的背包问题(c++-python3 分组背包问题 + 树形dp)

11 背包问题求方案数(python3)

734 能量石(python3 贪心 + 零一背包问题)

斜率优化

300 任务安排1(python3 动态规划)

301 任务安排2(python3 斜率优化)

302 任务安排3(python3 斜率优化)

差分约束

差分约束总结(差分约束属于图论中的知识点)

1169 糖果(python3 差分约束)

362 区间(python3 差分约束)

1170 排队布局(python3 差分约束)

393 雇佣收银员(python3 差分约束)

拓扑排序

1191 家谱树(python3 拓扑排序)

1192 奖金(python3 拓扑排序求解差分约束问题)

164 可达性统计(python3 拓扑排序求解dp问题)

456 车站分级(python3 拓扑排序求解差分约束问题--平方级别的建图优化)

归并排序

归并排序可以用来求解逆序对的相关问题

107 超快速排序(python3 逆序对-归并排序模板)

高精度乘法

793 高精度乘法(python3 高精度乘法模板)

状态压缩dp

状态压缩dp

291 蒙德里安的梦想(python3 状态压缩dp)

1064 小国王(python3 状态压缩dp)

327 玉米田(python3 状态压缩dp)

292 炮兵阵地(python3 状态压缩dp)

524 愤怒的小鸟(python3 状态压缩dp-集合式状态压缩dp)

状态机模型

1049 大盗阿福(python3 状态机模型)

1057 股票买卖 IV(python3 状态机模型-滚动数组优化)

1058 股票买卖 V(python3 状态机模型)

1052 设计密码(python3 kmp + 状态机模型)

最小生成树

典型应用:

最小生成树总结

1140 最短网络(python3 prim算法)

1141 局域网(python3 kruskal算法)

1142 繁忙的都市(python3 kruskal算法)

1143 联络员(python3 kruskal算法)

1144 连接格点(python3 kruskal算法-创建所有相邻边的技巧)

扩展应用:

1146 新的开始(python3 添加超级源点-prim算法)

1145 北极通讯网络(python3 kruskal算法)

346 走廊泼水节(python3 kruskal扩展)

1148 秘密的牛奶运输(python3 次小生成树、dfs维护树中两个节点的最大距离)

强连通分量

1174 受欢迎的牛(python3 强联通分量)

367 学校网络(python3 强连通分量)

1175 最大半连通子图(python3 强连通分量)

368 银河(python3 强连通分量)

双连通分量

无向图的双连通分量

395 冗余路径(python3 边的双连通分量)

1183 电力(python3 点的双连通分量--求解割点)

396 矿场搭建(python3 求解点的双连通分量)

spfa找负环

spfa找负环

904 虫洞(python3 spfa找负环)

361 观光奶牛(python3 01分数规划-二分)

1165 单词环(python3 01分数规划-二分-->巧妙建图)

单调队列优化

单调队列优化总结

135 最大子序和(python3 单调队列优化)

1088 旅行问题(python3 单调队列优化)

1089 烽火传递(python3 单调队列优化)

1090 绿色通道(python3 二分 + 单调队列优化)

1087 修剪草坪(python3 单调队列优化)

1091 理想的正方形(python3 单调队列优化)

单源最短路径

在一个图中检查连通性可以使用下面的三种常见的方法:① dfs ② bfs ③ 并查集

单源最短路径的建图方式

单源最短路径相关算法总结

python建图的三种常见方式

python使用四个数组建图的第二种方式

python多组测试数据的输入处理

849 Dijkstra求最短路 I(python3 朴素Dijkstra算法模板)

850 Dijkstra求最短路 II(python3 堆优化版本的Dijkstra算法模板)

851 spfa求最短路(python3 spfa求解最短路径)

1129 热浪(python3 单源最短路径模板)

1128 信使(python3 floyd算法)

1127 香甜的黄油(python3 spfa求解最短路径)

1126 最小花费(python3 单源最短路径扩展)

920 最优乘车(python3 抽象-->单源最短路径)

903 昂贵的聘礼(python3 单源最短路径-建图)

单源最短路径的综合应用:

1135 新年好(python3 单源最短路径 + dfs)

340 通信线路(python3 单源最短路径 + 二分)

342 道路与航线(python3 单源最短路径 + 拓扑排序)

341 最优贸易(python3 单元最短路径 + dp)

单源最短路径的扩展应用:

1137 选择最佳线路(python3 单元最短路径扩展-增加一个虚拟源点)

1131 拯救大兵瑞恩(python3 单源最短路径扩展-拆点(dp))

1134 最短路计数(python3 单源最短路径扩展-最短路计数)

383 观光(python3 单源最短路径扩展-次短路的求解)

求解方案数目

11 背包问题求方案数(python3 最优选法的方案数目)

1134 最短路计数(python3 单源最短路径扩展-最短路计数)

 1175 最大半连通子图(python3 强连通分量)

最近公共祖先

最近公共祖先总结

1172 祖孙询问(python3 倍增思想)

1171 距离(python3 tarjan算法离线求解最近公共祖先)

356 次小生成树(求python3 求解LCA时候维护两点之间的最大边权和次大边权)

352 闇の連鎖(python3 倍增法求解最近公共祖先、树上差分)

图论问题总结

差分约束--强连通分量--拓扑排序总结

floyd算法及其变形

多源多汇最短路

1125 牛的旅行(python3 floyd算法的基础应用)

343 排序(python3 floyd算法求解传递闭包)

344 观光之旅(python3 floyd算法求解最小环)

345 牛站(python3 类floyd算法求解恰好经过k条边的最短路径)

欧拉路径与欧拉回路

欧拉路径与欧拉回路

1123 铲雪车(python3 欧拉回路)

1184 欧拉回路

1124 骑马修栅栏(python3 欧拉回路与欧拉路径)

1185 单词游戏(python3 欧拉路径-字符串建图方式)

  • 13
    点赞
  • 149
    收藏
    觉得还不错? 一键收藏
  • 7
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值