[原文链接]http://www.coderspace.net/bbs/viewthread.php?tid=119&extra=page%3D1
看了这份非官方的NOIp大纲,还是弱不禁风.不过分治、贪心似乎被无视了.
目前指熟练掌握了1/3,还有近1/2的部分不熟练,联想起"不要总想着AC",需要大量做题了.
排序:
(1,5)冒泡/选排(这个很常用,一定要保证正确性)
(2,5)快排(Pascal选手可以去FPC文件夹里找代码,C/C++选手注意sort的正确性)
(3,4)归并排序(最好要会,因为有可能有题要卡快排)
数据结构:
(2,2)循环队列(节省空间用)
(2,4)单调队列(DP里经常用)
(1,3)完全二叉树的数组存储
(2,5)并查集(一定要会路径压缩)
(3,4)图的前向星存法
(4,2)Trie树,后缀数组(这些学过的就再复习一下,没学过就不用看了,估计考的概率不大)
(3,2)森林转二叉树(树状DP常用)
动态规划:
(1,5)基本的背包问题(一定要熟练写出方程,尤其注意边界的取值)
(3,4)多线程DP(二取方格数)
(3,2)LIS的二分优化
(2,4)DP的队列优化(LCIS,单调队列很常用的)
(3,4)树状DP(其实就是记忆化搜索,很好理解)
图论:
(1,5)最短路(dijkstra,floyd,spfa)
(2,5)最小生成树(prim,kruskal)
(2,5)拓扑排序
(2,3)floyd求最小环
(3,4)求(有向/无向)图的强连通分量
(1,3)判断图中是否有环
(3,2)图的关键路径
(4,1)差分约束系统(就是求最长路,用spfa)
其他:
(2,4)RMQ问题的ST算法(LCA问题也可以转化为RMQ问题)
(4,5)高精度的加减乘除开方(开方一般情况下直接二分比较方便)
(3,4)表达式求值(栈或并查集皆可,一般来说并查集比较容易实现)
(2,2)扩展欧几里得算法(解同余方程用)
(1,5)乘法转加法神器:log
(1,4)求最大子序列和的备忘录算法
(2,3)位运算优化搜索(N皇后问题,建议去USACO做一下)
(4,2)搜索剪枝(推荐做USACO的fence rail那题)