高精度
a.加法
b.减法
c.乘法
d.高精度除单精
排序算法
a.选择排序
b.插入排序
c.hash排序
d.归并排序
e.堆排序
f.快排
字符串匹配 算法
a.蛮力法
b.KMP
数论
a. 欧几里德 算法
b. 扩展欧几里德算法 (ax+by=c的正整数
c.素数测试 {O(sqrt(n))}
d. 筛法求素数
e.快速乘方(请用高精)
树论
a. 二叉搜索树
b.优先队列
c.线段树 (RMQ问题建议使用st算法)
d.平衡树一种(建议学习SBT)
图论
a.拓扑排序
b.割顶,割边(桥) {O(n)}
c.强 连通分支 {O(n)}
d.有向无回路图的最长路径(罕见用上的)
e.欧拉回路
f. 最小生成树
1.Prime
2.Kruskal (这个个人觉得挺重要的)
g.次小生成树 {简单的删除最大边是不对的}
h.最短路径
1.Dijkstra
2.Bellman-ford
3.spfa
4.flyod
{推荐单源使用spfa,同样可以通过设上限发现图中是否有负权回路,而且这个思想在去除dp中的暂时后效性非常有用}
计算几何学 {noip不是不考几何}
a.判断两条线段是否相交
b.凸包算法 {O(n)}
其他算法
并查集
RMQ问题(通解:线段树,st算法)
a.加法
b.减法
c.乘法
d.高精度除单精
排序算法
a.选择排序
b.插入排序
c.hash排序
d.归并排序
e.堆排序
f.快排
字符串匹配 算法
a.蛮力法
b.KMP
数论
a. 欧几里德 算法
b. 扩展欧几里德算法 (ax+by=c的正整数
c.素数测试 {O(sqrt(n))}
d. 筛法求素数
e.快速乘方(请用高精)
树论
a. 二叉搜索树
b.优先队列
c.线段树 (RMQ问题建议使用st算法)
d.平衡树一种(建议学习SBT)
图论
a.拓扑排序
b.割顶,割边(桥) {O(n)}
c.强 连通分支 {O(n)}
d.有向无回路图的最长路径(罕见用上的)
e.欧拉回路
f. 最小生成树
1.Prime
2.Kruskal (这个个人觉得挺重要的)
g.次小生成树 {简单的删除最大边是不对的}
h.最短路径
1.Dijkstra
2.Bellman-ford
3.spfa
4.flyod
{推荐单源使用spfa,同样可以通过设上限发现图中是否有负权回路,而且这个思想在去除dp中的暂时后效性非常有用}
计算几何学 {noip不是不考几何}
a.判断两条线段是否相交
b.凸包算法 {O(n)}
其他算法
并查集
RMQ问题(通解:线段树,st算法)