-
动态规划
-
搜索
-
DFS
POJ 2488POJ 3083POJ 3009POJ 1321 -
BFS
POJ 3278POJ 1426POJ 3126POJ 3414POJ 2251 -
简单搜索技巧和剪枝
POJ 1010⭐POJ 2362
POJ 1011(搜索+剪枝)
POJ 1416POJ 2676POJ 1129❔
-
-
数据结构
-
串
POJ 1016POJ 1035
POJ 3080
POJ 1936 -
排序(快排)
POJ 1007POJ 2388
POJ 1804
POJ 2299 -
高效查找
POJ 1002POJ 3349
POJ 3274POJ 1840
POJ 2002
POJ 3432
POJ 2503
Leetcode 33 -
哈夫曼树、优先队列
POJ 3253 -
trie树
POJ 2513 -
双指针
Leetcode 15 -
二叉树
Leetcode 94Leetcode 102Leetcode 124(dfs) -
哈希
Leetcode 454 -
栈
Leetcode 227
-
-
字符串
-
KMP算法:ghost:(不够熟练)
POJ 3461
-
-
图算法
-
图遍历(前序、中序、后序)
POJ 2255 -
最短路(Bellman-Ford/SPFA/Dijkstra)
POJ 1860POJ 3259POJ 1062POJ 2253
POJ 1125
POJ 2240
-
最小生成树(Prime)
POJ 1789POJ 2485POJ 1258POJ 3026
-
拓扑排序(Kahn)
POJ 1094 -
二分图的最大匹配👻(不够熟练)
POJ 3041POJ 3020 -
最大流
POJ 1459
POJ 3436
-
-
基本算法
-
枚举
POJ 1753POJ 2965
-
贪心
POJ 1328POJ 2586
-
构造法
POJ 3295POJ 3239
-
分治法
Leetcode 395 -
模拟法
POJ 1008POJ 1068
POJ 2632
POJ 1573
POJ 2993
POJ 2996
POJ 3087
-
POJ 1001POJ 1503
POJ 2109
POJ 2389
POJ 2602
POJ 3982
Leetcode 2
-
-
北大叉院2019
POJ 1064
POJ 1321
百练 3421
百练 4128
POJ 1185
-
*O(n)*时间复杂度寻找字符串中的最长回文子串
- KMP
- 背包问题及其变种
- 多重背包
- 二进制拆分
- O(Vn)解法
- 多重背包
- DP 🛩️ 🛩️ 🛩️ 🛩️ 🛩️ 🛩️
- 最大子段和
- 最长递增子序列(LIS)
- 最长公共子序列(LCS)
- 最短路 🛩️
- Floyd
- Dijkstra
- Bellman-Ford(检查出的是包含源点的负环还是所有负环?)
- SPFA
- 并查集 🛩️
- BFS 🛩️ 🛩️
- DFS 🛩️
- 贪心 🛩️
- 二叉树遍历 🛩️
- 输入输出整理
- long long ("%lld")
- double("%lf")
-
闰年:能被4整除且不能被100整数;能被400整除
-
使用BIT时需要特别注意,当idx为0时update会陷入死循环
-
滚动数组
-
有整数求和操作时注意是否需要使用long long !!! 有double时一定要小心不要将其赋给整形变量
-
欧拉图(一笔画问题)
- 联通无向图存在欧拉路径的充要条件:度数为奇数的结点的数目等于0或2
- 联通无向图存在欧拉回路的充要条件:每个结点的度数均为偶数
- 联通有向图可以表示为一条从u到v的欧拉路径的充要条件:u的出度比入度多1,v的出度比入度少1,其他结点的出度和入度相等
-
拓扑排序
- Kahn算法(前驱结点法)
-
二分图
- 判定
- 黑白染色
- 最大匹配
- 匈牙利算法
- 最小点覆盖
- 求出一个最小的点集,使得图中任意一条边至少有一个端点属于点集
- 最小点覆盖包含的点数=最大匹配包含的边数
- 最大独立集
- 任意两点之间都没有边相连的点集
- 二分图最大独立集包含的点数=二分图的总点数-二分图的最大匹配数
- 最小边覆盖
- 选出尽量少的边,使得每个点至少是一条选出的边的端点
- 最小边覆盖的边数=二分图总点数-二分图的最大匹配数
- 判定
-
快速排序优化
- 随机选取基准
- 三数取中
- 小数组使用插入排序
-
C++ 稳定排序 stable_sort
-
化归策略
- POJ 1014 判断sum是否平分,转换为是否可以将物品放到sum/2的背包中
-
位运算技巧
- n&(n-1) 将n的最后一个1变为0
-
图着色问题与最大团是否等价?(仿佛有个反例)
A-B B-C C-D D-E E-A
- POJ 1018
- POJ 1260
- POJ 1837
- POJ 3274
- POJ 2513