[NOIP]自己收集总结的NOIP考纲

首先来一张图,很直观

 

 

下面是收集的一些,我改了一下

红色加粗表示特别重要,必须掌握
绿色加粗表示最好掌握,可能性不是很大,但是某些可以提高程序效率

 

高精度
  a.加法
  b.减法
  c.乘法(应该只会有高精乘单精                               
  d.高精度除单精                 (后面c,d考的可能性较小,应该只考a,b)


排序算法
  a.选择排序
  b.插入排序
  c.hash排序
  d.归并排序(单纯的排序可能用不到,有快排就行了,但是归并排序的思想很重要)
  e.堆排序
  f.快排


字符串匹配算法
  a.蛮力法
  b.KMP


数论
  a.欧几里德算法(用辗转相除法求最大公约数)
  b.扩展欧几里德算法 ax+by=c 的正整数
  c.素数  O(sqrt(n)) 
  d.筛法求素数
  e.快速乘方(位运算+同余+高精)


树论
  a.二叉搜索树
  b.优先队列(C++中priority_queue,相当于手动维护的小(大)根堆的数据结构优化)
  c.线段树 (RMQ问题建议使用st算法)
  d.平衡树一种(建议学习SBT)


图论
  a.拓扑排序
  b.割顶,割边(桥) {O(n)}
  c.强连通分支  O(n)
  d.有向无回路图的最长路径
  e.欧拉回路
  f.最小生成树
    ① Prime  O(N2)
    ② Kruskal  O(M2) 
  g.次小生成树 {简单的删除最大边是不对的}
  h.最短路径
    ① Dijkstra
    ② Bellman-ford
    ③ spfa
    ④ flyod
    单源点最短路径算法推荐使用spfa(即使你习惯dijkstra),Dijkstra不能有负边不能有回路,所以用spfa更保险


计算几何 
  a.判断两条线段是否相交
  b.凸包算法  O(n)


其他算法
  a.并查集
  b.RMQ
  ......

 

 

posted @ 2012-11-04 17:44  jiangzh  阅读(761)  评论(0编辑  收藏  举报