高精度
  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
  ......

【COGS】NOIP临考经验

1.  提前15分钟入场,此时静坐调整心态,适当的深呼吸

2.  打开编辑器并调整为自己喜欢的界面

3.  熟悉文件目录,写好准确无误的代码模板

4.  压缩包或许还不能解压,但是文件名已经可以知道了,在选手目录下用代码模板建好所有文件,包 括.c/cpp/pas、.in、.out

5.  开始比赛,不要急于看题目,将试题第一页的时间、内存限制等等一字不落地看完

6.  看题目时不能走神,看完题目后将其归入某几个框架中,包括:模拟/枚举/搜索/贪心/动态规划/图论/分治

7.  根据输入数据的范围大致确定算法复杂度,以下均是可能情况,不绝对:

20:2^20=一百万,O(2^n),搜索

100:100^3=一百万,O(n^3),Flody/APSP/搜索

1000:1000^2=一百万,O(n^2),动态规划/图论

500000:O(nlog(2,n)),二分答案/二分查找/快排/归并

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

8.    写下代码前,必须保证有充足的思考时间,有成熟的想法后再动手

9.    写代码前,尽量用多而强的数据去测试想到的算法,毕竟代码写完后再测试就浪费很多时间了

10.  不能想一点写一点,就算是输入部分也要在整体思路理清后再写

11.  永远别去写从未接触过的算法/数据结构

12.  有多余时间一定要进行对拍,即3个程序:生成数据、朴素算法、准备交的算法

13.  交之前5分钟千万不要再改动代码,主要留意代码中是否还有测试程序时留下的痕迹

14.  走出考场后,除非已经是Day2,永远别对答案

考前准备秘诀

<一>程序习惯注意

一、Linux与Windows的区别
a) 大小写敏感
i. 在Windows下,文件名大小写不敏感,例如A.PAS 与 a.pas 与 A.pas 与 a.PaS没有区别。
ii. Linux视文件名为二进制数据,所以区分大小写。
iii. 考试时一定要看清题目上要求,区别大小写。
b) 关闭文件
i. Windows在程序退出时默认自动关闭已打开的文件,会把缓存中数据写入硬盘。
ii. 在Linux下必须由程序关闭文件,否则没有被写入硬盘。
c) 回车符与换行符
i. 在Windows下,两行文本间有回车符 (ASCII 13) 和 换行符 (ASCII 10)。
ii. 而在Linux下,只有换行符 (ASCII 10)。
d) Read 与 Readln
i. 由于回车与换行在Windows和 Linux下存在有区别,编程时要格外注意。
ii. 尤其读字符串时,尽量采用Readln,而不要 While not eof read或While not eofln read。
e) 多余字符过滤
i. Arbiter评测系统有多个插件,分为整数比较(过滤无效字符)和逐字节比较。
ii. 由于评测插件的原因,注意输出结果时,尽量不要有多余空格或换行。
iii. 对于一个整数,使用write输出。
iv. 对于多个整数,输出最后一个时不要有多余空格或换行。

v. 对于一个字符串,尽量使用write整体输出。

二、保存文件
a) 注意文件名,保存要求,目录结构等问题。
b) 某些省份(如 河南)要求同时提交.exe文件,注意不要漏交。

<二>考前十点提醒

一、一定要想好了算法,思路清晰了再编。分析问题时遇到一些即兴问起的情况,马上要深入下去,看已有的算法思路是否有问题。经验证明,这种即兴提起的问题往往是决定算法正误的关键问题。这是一种本能的质疑,本能的差错,一定不要想:我一会再来看这个问题。一定要立即想清楚,看算法怎么样处理才能解决这样一个问题。确认算法没有什么错误了再编。如果思路没清晰,算法不对,编到一半时才发现错了,这种情况没有考虑到,浪费了很多时间,或者编完了都还不知道算法是错的,最后由于样例特殊,过了样例,以为对了,但实际上只得10分,或者根本不得分。
二、对于简单的题,一定要考虑全面,不是编好了程序再来考虑全面,而是想算法的时候就要考虑全面。不要知道个大概就开始写,后来发现一些特殊数据要作特殊处理,又把程序改过去改过来,改得面目全非,最后老是改不对,不但影响心情,而且还是错的。
三、看题要灵活,不要绊死在一道题,不要怕。NOIP的题不想就做出来,怎么可能,肯定是需要想的。但是最好先写好写的题,不一定是前两道题。其实很多时候你是有能力做起的,只是你一看就怕了,也没有去认真想,随便敷衍想了一点特殊情况的算法,认为可以骗到分。但经验证明最后基本是没有分,即使有,最多不过10。时间是3个小时,要积极一点,经验证明,很多题想到一定时候便想出来了。并且很简单。
四、一定要认真读题,读的时候积极思考,看看这某句话到底是个什么意思,要会转换。特别是对于有时间的问题,到底把时间看成一个点,还是一个区间,具体题目具体分析,一定要符合题意。题没读懂就开始做,100%是错的。题错,思路也就错,时间浪费了, 数据还是1个都不过。
五、思考算法的时候,一定要考虑到特殊数据,或一些特殊情况。想好算法,写下各个变量的意义,明确使用的时候都是遵照这些意义的。写下关键的句子,分清各种情况,这个阶段最重要,一定要仔细,不要急着编程。写完了,还要再看各变量是否带对,是否有笔误。等到这些做完了,重复看下整个算法实现过程,等自己解题思路清晰的时候,才开始编程。
六、理清了思路再编程,写好了关键句子再编程,弄清楚了变量再编程,速度会很快,而且正确率也很高。
七、一定要先思考清楚。很多人就是犯不思考就编程这个错误,最后自己就昏了。于是浪费大量时间,而且题也做不出来。一定要避免这种情况。这样就能胜于别人。
八、程序按照思路编完之后,查编译错误。经验证明,刚刚完成的程序不出编译错误的几率基本为0。编译全部修正后,千万不要测样例。经验证明,第一次就把样例过了的几率很低,即使过了,在测自己的特殊数据的时候也会出错。所以,编译完后一定要静态查错。经验表明,静态查错是很有效果的。基本上每次静态查错都可以找到变量代错的错误。特别是快排的I,J是否带错,DEC,INC是否搞错,SWAP是不是加了VAR等等。试想:如果没有静态查错,就去测样例,如果程序有错,样例不过,影响心情;即使样例过了,因为程序有错,特殊数据也不一定能过;即使特殊数据也过了,程序有错,评测的时候绝对会错。发现错了,影响心情了,还是要来静态查,心情不好,肯定效率低。那还不如一开始就静态查,即使发现错误,获得成就感,心情很好。千万不要慌着去测。要保证程序无错,思路清晰,结构清晰了,然后再去测样例,再去测特殊数据。样例过了不要得意,特殊数据过了不要得意,很有可能还有很多特殊情况你没有想到。
九、做好心理准备,也许做了两道自己认为会全对的,还做了一道自己认为能过几组的。可能只得50。这也是有过的事情。除了做好那几个步骤,没有其他的办法。认了吧。搬块石头砸天,也是没有用的。
十、树立正确的成败观。体验第一,拿奖第二。往往能从失败中学到更多的东西,得到更多的感悟。成功固然好,失败也不错。成事在天。做到了自己做到的,就是另一种意义上的成功。

<三>考前时间利用

一、考前几分钟时间,往往能决定成败,所以一定要做好心态调整。不要去想结果,只看过程,努力了就一定不会白费。
二、在别人紧张、坐立不安的时候,你不妨把时间利用起来。依照惯例,考试前几分钟是可以先调试电脑的,所以这时候一定要做些准备:
a) 设置IDE
i. 默认路径
ii. 窗口大小
iii. TAB宽度
iv. 重启IDE
b) 准备文件
i. 创建.in .out
ii. 创建模板
iii. 熟悉计算机,检查有误故障
c) 休息,等待开考

 

NOIP前必须记住的30句话

1.比赛前一天晚上请准备好你的各种证件,事先查好去往考场的路线
2.比赛之前请先调整你的屏幕分辨率到你喜欢的大小
3.比赛之前请把编译器的字体调为你平时惯用的字体,尤其是注意这种字体中的逗号,点,1,l这种易混淆的字是不是区分明显
4.在不影响视野的情况下,请将字号尽可能调大,方便查错
5.请将题目通读完以后,再开始深入思考你认为最容易的一道题
6.即使这道题再容易,也不要着急写代码,请先明确自己每一步要干什么后,再开始写,轻敌会是你最大的错误
7.即使这道题看起来再没法做,也不要提早放弃,这个时候纸和笔会是你最好的朋友,自己尝试几个例子,也许你就会找到答案
8.请一定先明确自己要干什么之后再写程序,不要走一步想一步
9.如果这是一道动态规划题,请先把转移方程写在纸上再编程
10.涉及到边界处理、加一减一之类的问题,请在纸上举个例子,标上下标以后,在编程时参照纸上的下标写
11.如果思考30分钟仍一头雾水,没有可以实现的算法,请你果断屏蔽掉100%的那一栏数据,开始写60%,50%乃至30%的算法——在NOIP里面,30分绝不是小数目
12.几个常用的复杂度参考:100以下——可能是搜索;100~500——N^3,1000~5000——N^2,100000~500000——NlogN,500000以上——N或1
13.如果你发现你旁边的人写得很快,请你放心,他的算法十有八九是错的
14.虽然1s+128MB内存 (这是以前的了,现在应该是 1s + 256MB)  是标准配置,不过也不是每道题都是这样的,还是请认真阅读试卷首页的试题说明
15.计算内存的方法:数组大小*类型长度/1000 / 1000=所占内存MB数,int(Pascal:longint)类型长度是4, long long  (Pascal: int64)  =8 
16.记不住的话,记住int  (Pascal: longint)  型数组在128MB内存下最大开到2500 0000是比较保险的(占100MB内存)
17.写完程序之后,请一定不要忙着编译,请一定要将你的代码从头到尾通读一遍,也就是静态查错,这是整个编程过程中最重要的步骤,有的变量重复调用问题调试的话,一个小时也看不出来,静态查错可以一下指出错误
18.静态查错请注意以下方面:
(1)是否写上了using namespace std?    (这是C++的,Pascal就不用了)
(2)数组开得是否够大?
(3)变量类型是否正确?
(4)memset时,所填的sizeof(XX)的XX是不是匹配?大小是不是正确?    (Pascal 是 fillchar)
(5)外层循环与内层循环的i,j是不是混用了?
(6)循环之前,i,j是否定义了?
(7)输入数据都输入了吗?
(8)这个程序是在执行你想让它执行的步骤吗?
19.通过样例后,请你一定不要放松警惕,因为样例并不能覆盖所有的情况,请自己设计几组数据,争取卡死你的程序
20.如果出现问题,请你调试你的程序,请一定要分模块调试,不要从头跟到尾
21.如果你已经设计不出能卡住你的程序的数据,恭喜你可以做下一题了
22.如果你用的是windows,请你注意把system(“pause”)注释掉   ( 针对C/C++,Pascal 不存在 )
23.为了万无一失,请你用return 0结束你的程序  ( 同样 , 针对 C/C++ ,建议是必须加上 )
24.在内存允许的情况下,能开普通队列就不要用循环队列,能开下普通数组就不要用滚动数组
25.在时间允许的情况下,能暴力就暴力,高精度能不压位就不压位,优化不需要的就不要
26.总之,在不超限制的前提下,能不优化就不优化,以减少代码量和出错概率为第一原则
27.当比赛还剩下5~15分钟的时候,请不要再改动你的程序,即使你怀疑它对你的一个输入给出了错误答案,因为你自己算出的结果也有可能是错的
28.这个时候请你检查是否注释掉了该注释掉的东西,文件名是否写对,文件夹是否建对,请一定反复检查
29.今年赛制更改,没有人知道究竟会变成什么样,所以,与其瞻前顾后,不如集中精力做出你眼前的题目来的实际
30.请记住,NOIP不怕暴力,怕瞎算,不怕不会,怕不敢,有时间的话一定要写一个暴力程序去对拍,验证算法的正确性

NOIP注意事项的更多相关文章

  1. 【持续更新】NOIP注意事项

    1.无根据的乱搞不可能对 2.必须造极限数据跑一下 3.必须测空间 4.不管用不用都把cstring加上 5.开文件测样例 6.删一长串代码最好注释 7.到10:00先敲暴力 8.题读三遍 9.先做好 ...

  2. noip 注意事项 (个人向)

    目录 非常重要 对拍 空间 极限数据 模数,YES/NO等大小写 个人 考场 神仙 czdzx 说要写,我也来写 非常重要 对拍 空间 极限数据 模数,YES/NO等大小写 个人 养身体,不要紧张,不 ...

  3. NOIP前的模板复习和注意事项

    联赛除去今天刚好只有一个星期了,最后一个星期也很关键,要吃好睡好保持心情愉悦.当然也免不了最后的复习计划. 首先是模板,之前还有很多模板没有复习到,这些东西是一定要落实到位的. 每天往后面写一点... ...

  4. NOIP/CSP-S 考前注意事项

    NOIP/CSP-S 考前注意事项 实际操作与代码注意事项 基本内容 可以使用 #include <bits/stdc++.h>!!!从来都是可以的!!!不需要背诵一大串头文件,更不要从本 ...

  5. NOIP 竞赛注意事项

    <一>程序习惯注意 一.Linux与Windows的区别 a) 大小写敏感 i.   在Windows下,文件名大小写不敏感,例如A.c 与 a.c 与和a.C与A.C和没有区别. ii. ...

  6. NOIP上机测试注意事项

    由于近期模拟题原地**次数较多,故写一篇警示文 1,头文件 1.1正式比赛中,反正我不敢用bits/stdc++.h. 1.2正式比赛中,建议打出以下十个库 #include<iostream& ...

  7. noip考前注意事项

    明天就要离开学校,后天的现在Day1已经考完啦,临近考试了紧不紧张呢(不紧张才怪),那么考前我们应该注意点什么呢? 1.带好自己的证件,带好自己的证件,带好自己的证件,这很重要. 2.试机的时候一定要 ...

  8. NOIP 2018 兔纸旅游记

    今年是第一次参加tg呢... Day0    早上出发去中旅坐大巴,走有 lz 特色的OI比赛道路. 车上谈笑风生,看 jw 的 GDOI 的小本本. 到动车站取票入站,看 lmh 和 zn 的爱恨情 ...

  9. 2018 noip AFO? 祭

    \(\color{#00ffff}{DAY \ \ -1}\) 一下午,都在说注意事项,也没刷题 学姐说,考前远离rqj,会被%,掉rp(雾 晚上8点20,内心有一丝悸动... 于是去找教练谈话 在教 ...

随机推荐

  1. PowerDesigner 逆向中 Name和Comment互换

    在使用PowerDesigner对数据库进行概念模型和物理模型设计时,一般在NAME或Comment中写中文,在Code中写英文.Name用来显 示,Code在代码中使用,但Comment中的文字会保 ...

  2. RTC,登陆后添加权限值

    修改单元:rtcMW.DM.Main; 修改组件:fnLogin 在方法中添加: 服务端: const SQL_SELECT_USER = 'SELECT * FROM Users WHERE Use ...

  3. Socket原理与编程基础

    一.Socket简介 Socket是进程通讯的一种方式,即调用这个网络库的一些API函数实现分布在不同主机的相关进程之间的数据交换. 几个定义: (1)IP地址:即依照TCP/IP协议分配给本地主机的 ...

  4. Json与Bean互转,Timestamp类型的问题

    Json与Java Bean互相转换时,Bean中的Timestamp字段是无法直接处理的,需要实现两个转换器. DateJsonValueProcessor的作用是Bean转换为Json时将Time ...

  5. Scrum7.0

    Sprint回顾 让我们一次比一次做得更好. 1.回顾组织 主题:“我们怎样才能在下个sprint中做的更好?” 时间:1个小时 参与者:整个团队 场所:课室 秘书:陈程 2.回顾流程 (1)spri ...

  6. mac下开发IOS代码管理

    1.安装和配置subversion服务器 在windows 服务器上安装VisualSVN-Server,下载地址http://www.visualsvn.com/server/download/.采 ...

  7. hdu 3622 Bomb Game(二分+2-SAT)

    Bomb Game Time Limit: 10000/3000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total ...

  8. 第十八周个人作业--The Final

    项目计划   完成这个项目需要的时间:5-7天项目开发  需求分析:    作为一名排球赛事管理者,我希望能够根据比赛查询每场比赛的结果,以便于确定每支球队的比赛名次.  设计文档    由排球比赛用 ...

  9. BZOJ1093 [ZJOI2007]最大半连通子图

    Description 一个有向图G=(V,E)称为半连通的(Semi-Connected),如果满足:?u,v∈V,满足u→v或v→u,即对于图中任意两点u,v,存在一条u到v的有向路径或者从v到u ...

  10. nodejs学习笔记(一)

    终于开始学NodeJs了 说说遇到的问题吧 1.安装express npm install -g express(按道理说,这个全局安装是没问题的,但他就是出问题了) 解决方案: 来源:http:// ...