结合老师讲解,自己整理的部分考点
排序:
最重要的:
冒泡排序: 1、换一次逆序对少一;2、证明贪心的传递性;
归并排序:合并过程;
搜索:
双向bfs(状态宽,已知开始与结束)
记忆化搜索(重要,图上DP,状压DP用记忆化比较好写),解DP(DP转化图);
A* 了解
IDA* 了解
图论:
bellman ford (DP s到i 最多只能经过<=k条边)
floyd (经过小于等于k的点,按照顺序加点)
树:
重心 DP (学!);
直径 DP(两种情况);
dfs序:起始时间的dfs序,性质,一棵子树是连续的一段区间;
结束时间的dfs序,图上,拓扑排序的反序。
LCA : 倍增(用处很多),tarjan的离线询问(并查集);
kruskal :特性使得最大的边最小(最小瓶颈树);
图的联通:
2-SAT 了解;
各种tarjan
网络:
判定二分图,最大匹配;
计算几何:
两点距离;
直线与圆球交点,直线与直线交点;
圆球和圆球交点;
技巧与思想:
三分:单峰函数极值;
离散化;
数列差分,前缀和;
字符串:
KMP
trie
LCP
其他:
DLX
数学:
筛
费马小定理
高斯消元
乘法逆元
矩阵乘法
欧拉函数
概率 期望(多做题)
高精度gcd;
排列组合:
数据结构:
链表
hash表
线段树:+读入优化;
考试经验:
1.不要写全库;
2.刚进考场打邻接表;
3.尽量不要想高端算法;
4.培养习惯:多动笔,写注意事项,伪代码,特别是贪心(疫情控制),每一步写出来;
5.STL 写上cstirng(包含memset,memcpy)strstr(S,T)- S,T在S中第一次出现(数据范围<10w, 比KMP快);
6.pair