一、数据结构:
优先队列、堆、RMQ问题(区间最值问题,可以用线段树解决,还有一个Sparse-Table算法)、排序二叉树、划分树、归并树.....
字符串处理:
KMP、字典树、后缀树、后缀数组(两种求后缀数组的方法 倍增和DC3算法)
包括C++ STL 里面一些东西 比如sort vector map set stack queue mulitmap mulitmap proptity_queue.......
还有快排、归并、堆、冒泡、选择、插入、希尔、基数、计数、地精等排序算法最好了解一下,还有基于快排的区间第K值的快速查找法
二、图论算法:
二分匹配、网络流、几种最短路径算法、差分约束、强or弱连通图.......
三、DP 动态规划
各种背包、数位DP、树形DP、状态压缩DP、概率DP、平行四边型法则,单调队列....
四、数论&计算几何&博弈论
这个就涉及的多了,包括各种数学定理、微积分、概率论、线性代数等等数学知识,有很多很难的问题,不过一些基础的数论还是要知道的,比如gcd....
五、搜索
假期讲了dfs和bfs的原理,它们的应用很广,还有一些衍生出来的算法,比如双向广搜、A-star搜索、跳点搜索。。。