NOIP C复赛

Noip不会得到非常高端的算法。就连去年树网的内核,用O(n ^ 3)算法也能过九分。。。所以noip主要是基础算法的应用,动态规划和水的问题,水的问题依赖RP,主要是因为编程的熟练和谨慎。这个没有什么好办法,只能在复赛前做的题里慢慢进一步完善。动态编程只能用一些经典的问题来解释,做的更多。至于基础算法,熟练程度很重要。

历年来,普及组的题目要做,提高组的题目不算太老也要做一次。当然时间有限所以。。。

复习基本算法。我把我能想到的可能用到这里的都写下来,不考虑太高端的算法,基本考虑简单的。先写出来,再慢慢调整复习。。。

1.简单的数据结构:

表达式求值(懂算法,不写)循环队列的书写方法(即初始值为0,访问值为(s+1) mod n,见SPFA)。

弦乐的基本功能(最后再背一遍)

Hash (string cantor扩展mod zipper来处理冲突)

2.分类和数据处理

选择或冒泡快速行(包括快速选择)线性时间堆行(下屏排序,上屏插入)多关键字(按每个数据字段排序然后分别排序,不写)高精度(找模块化)二分搜索法。

3.非线性数据结构

树:遍历和遍历过程中的其他工作(统计,DP等。,也可以用来找无根树中一个环的边,就不写了)。最近的共同祖先(寻找一棵树最近的共同祖先和两点之间的路径,这是所有树共有的)被搜索以找到树。

图:最小生成树的最短路径(SPFA,DJ,弗洛伊德)欧拉路径(DFS就够了,边每次都被扩展删除。如果没有边,则存储,但删除操作不回溯,也不写)。求切割点(灌水,忽略O(n)高端算法)和强连通分量求最小圈关键路径的拓扑排序。

4.数论算法

公约数公倍数素数排列组合二进制转换高斯消元?

5.提示:离散化滚动数组(ti:=i mod 2,开0和1)。