noip考点整理(应该不是很完整……)

部分来自百度百科、其他的博客

一、必须会的

1.暴力:

DFSBFS、灌水法搜索、回溯搜索、记忆化搜索、启发式搜索、最优性剪枝、可行性剪枝

2.贪心

3.模拟

4.骗分

二、基础算法

1、图论:SPFAFloydDijkstraTarjiantopo排序、PrimKruskal

欧拉(回)路、哈密顿回路

2、树:并查集、堆、线段树/树状数组、LCA

3、分治:二分查找、二分答案、求逆序对

4、数论:GCDBSGS、扩展欧几里得求同余方程、Catalan数、快速幂、快速乘法、差分约束、筛素数

5、字符串:回文串的判定、KMPhash

6、动态规划:背包、线性DP、区间DP、环形DP等等

7、二分图匹配:匈牙利算法

8、高精度

考试策略:

1.考试开始前,调界面,写模板,写头文件,测试dev是否可用

2.看题目时注意数据范围,时限,仔细,不要猜测出题目没有说明的affairs

3.关于数据范围..

   20:O(2^n),搜索

   100O(n^3)Floyed/搜索

   1000O(n^2),动态规划/spfa/最小生成树

   500000O(nlogn),二分答案/快排/线段树/st/树链剖分/遍历(DFS可能爆栈)

   1000000O(n)O(1),数学问题/改变思维方向/贪心/kmp/dp

   当然只是一般情况下...

4.long long一定注意在传递参数和快速幂中不要开漏了...

还有数论题目

“三年OI一场空,不开longlong见祖宗”

5.以及最近经常把头文件写错(忘记写iostream,忘记写stdio.h之类的...

6.写代码前想好,能够证明最好证明,否则多出几组特殊数据测试

7.想好需要的每一个函数再开始写,并估算好时间空间复杂度

8.永远不要尝试不熟悉的算法orz...

9.一定要写对拍...

10.千万不要在最后15分钟改代码必错无疑百发百中

11.绝对不要对答案被虐无疑

12.写完一题检查一题,不要赶时间去做T3,保证前两题的正确性,T3除非是遇到了会写的算法,不要思考超过15分钟,直接写骗分

13.写完之后再留45min再检查,数据测试,阅读代码,查看细节

14.查看文件名,有没有把暴力程序交正解

15.前两题想不出来调不出来不要慌张,根据时间和难度判断好是否继续写继续调,或者先写第三题,,决定之后不要犹豫,不要患得患失

16.避免day1认真day2

17.检查时,对于学过的知识再过一遍,看看有没有漏掉简单的算法或者小的优

18.输入换行符的处理

19.看清评测系统,按评测系统选择用lld还是%I64d

20.DFS函数记得写return

21.变量名time屡错不爽...

22.memsetmemcpy写在for或者dfs里面忘记算复杂度....

23.coutcin输出不是必须(bignum)不要用,有TLE的风险

比赛常见问题总结

      问题:
      1、对于noip模拟:前两题在会的情况下码速不够,直接断送第三题的高分机会。
      2、偶尔会有没判0、爆栈等丢个510分的错误,偶尔会有
      3、看到一道题好像会做,一激动就把时间全花在上面了。
      4、临近结束,一慌起来,连暴力都不会打。
      5、由于时间复杂度估计错误而导致正解不敢打。
      6、由于多余的变量查看、数据画图过多等多余步骤引起的时间浪费。

      措施:
      1、适当提高一点码速,打代码时保持清醒的头脑,时刻明确自己正在干什么、自己要干什么。
      2、选择最恰当的方法来码。那句话说得好:每多一行代码,就多一次把 i 打成 j 的机会。方法以正确、简洁为优,冗余代码一定去除。
      3、多方法调试。眼调、输出调、拍、各种小数据测。时刻警醒拍真的不是万能的。
      4、控制好情绪,看题不激动,结束不慌张。深呼吸,念南无地藏王菩萨
      5、要有梦想。打目前想到的最优的方法,无论能否过(如果是暴力要顺手加优化)。注意各个版本的程序的存档。
      6、出了bug先整体感知,不要一上来就断点。

原文地址:https://www.cnblogs.com/kuaileyongheng/p/7323829.html