NOIP C复赛

来源:百度知道 编辑:UC知道 时间:2024/05/26 23:55:36
C复赛大概考哪些东西,需要掌握哪些基本算法

noip不会考到很高端的算法,即使是像去年的树网的核,也能用O(N^3)算法过掉九个点。。。所以说,noip主要就是基本算法的应用,动态规划和水题,水题要靠RP,主要在于编程熟练程度和心细,这个没有什么很好的办法,只能在复赛前所做的题中慢慢进一步提高。动态规划,只能看一些经典题的讲解并且多做题,至于基本算法,熟练是很重要的

历年来的题目,普及组的动规要做,提高组的题目如果不是太老就最好要都做一遍,当然,时间有限,所以。。。

复习基本算法,我在这里写一下我能想到的可能会用到的东西,不考虑太高端的算法,同样作用的算法,基本上考虑朴素的那种。先写出来,然后再慢慢的调整和复习。。。

1.简单数据结构:

表达式求值(知道算法,但是不写了) 循环队列的写法(即初始为0,出入为(s+1) mod n,见SPFA)

串的基本函数(要在最后再背一遍)

Hash( 字符串 康托展开 mod 拉链处理冲突)

2.排序和数据处理

选择或冒泡 快排(包括快速选择)线性时间 堆排(下筛排序和上筛插入) 多关键字(按照各数据域排序再分别排序,不写了) 高精度(寻找模块化的) 二分查找

3. 非线性数据结构

树:遍历及遍历过程中的其他工作(统计,DP等,还可以在无根树里用来找环的边,不写了) 最近公共祖先(求树的最近公共祖先和两点间路径,各种树通用) 并查集 查找树

图:最小生成树 最短路(SPFA,DJ,佛洛依德) 欧拉回路(DFS即可,每次扩展并删掉该边,如果走到没有边了,那么存贮,但是不回溯删除操作,不写了) 求割点(灌水,无视O(n)高端算法)强连通分量 求最小环 关键路径 拓扑排序

4.数论算法

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

5.小技巧:滚动数组(ti:=i mod 2即可,开0和1) 离散化处理