一、确定你的语言

NOIP包括三种语言c/c++/pascal,在最初必须确定自己使用的语言。没有c/c++基础的,个人建议使用pascal,因为它更容易上手,如果有充裕的时间,则建议c/c++,因为它们对你今后的程序编写,更有益处。

二、从排序入手

排序是基础中的基础,快速排序是必备本领,方法就是背下来。c/c++是自带快排的,因此很轻松。多关键字排序和稳定排序也是必须掌握的排序知识。

三、贪心和穷举以及模拟——最简单的程序

想得奖,必须掌握贪心和穷举以及模拟,虽然不能让你得满分,但可以给你拿到30-60分。它们是你想不出更好算法时的救命稻草。

贪心算法(又称贪婪算法)是指,在对问题求解时,总是做出在当前看来是最好的选择。也就是说,不从整体最优上加以考虑,他所做出的是在某种意义上的局部最优解。但是贪心是可以得分的。

枚举算法是指,列举出所有可能的取值,从中找出最优解。

模拟算法是指,通过逐步进行操作、逐步判断来推断是否符合题目中所给出的情况。非常耗时,一般不可能得到最优解,但是可以得到部分分数。

四、用动态规划来训练思维

比较难,对思维的周密程度和逻辑要求非常高。可以用来训练思维,对于学习时间短的筒子,动态规划可以帮助你迅速进入编程状态,也有助于帮你发现题目背后可能隐藏的更简便的算法。

动态规划主要的思考规律应该如下:

定义函数(动态转移方程中转移量的定义)——>建立方程——>确定初值和边界

提醒!考场上想不到动态转移方程,请选择贪心、枚举或模拟等方法来获得部分分数。动态规划最后得出的答案不正确时,也不要耗费大量时间来找出错误,因为这非常难,也非常耗时间,得不偿失。

五、学习简单的图论

包括:(单源或多源)最短路和(最小)生成树。

最短路中需要学习Dijkstra算法和Floyd算法。近年来图论题目越来越难,知识点越来越多,所以时间不够,请掌握这两种。

最小生成树需要掌握Prim算法和Kruskal算法。前者适用于稠密图,后者适用于疏密图。两者可以比较学习,看到它们的优点和不足。

六、常用的数据结构——让程序更快一点

最常用到的是堆(优先队列)、并查集以及树状数组堆。

堆:只关注“直系亲属关系”,不关注“旁系”。常配合贪心使用。

并查集:快速判断两个元素是否有关联,增加其他算法,还可判断元素间关系。

树状数组堆:平衡查询和修改的操作复杂度的一种算法,常用于解决需要查询和修改的问题。

七、搜索——和枚举很像

深度优先搜索和广度优先搜索。

深度优先搜索:一条路走到底。

广度优先搜索:每一步将下一步的可能性放入队列中,然后按照队列顺序来探测。

复赛中往往会加入很多复杂的元素,所以也需要好好掌握。

八、最后列一下一定要学习的数学基础知识

快速幂、高精度、筛法选素数、辗转相除法

九、必要的刷题

信息学竞赛的题库在网上随处可见如TYVJ,RQNOJ,洛谷,大视野测评等,为了方便大家寻找到适合自己的题库,我们会在今后的推送内容中对当今网络上一些题库进行专业的分析,帮你找到适合自己的题库。

信息学奥赛(NOIP)复赛学习方法推荐的更多相关文章

  1. code vs1262 不要把球传我(组合数学) 2012年CCC加拿大高中生信息学奥赛

    1262 不要把球传我 2012年CCC加拿大高中生信息学奥赛  时间限制: 1 s  空间限制: 128000 KB  题目等级 : 白银 Silver 题解  查看运行结果     题目描述 De ...

  2. 信息学奥赛辅导经验谈 & 问题教学法中的学生思维能力培养

    转载来自朱全民名师工作室 信息学奥赛辅导经验谈 全国青少年信息学奥林匹克分区竞赛(简称NOI)是经中国科协.国家教育部批准,由中国计算机学会主办的一项全国性的青少年学科竞赛活动.随着信息学奥林匹克竞赛 ...

  3. CCF关于NOIP复赛网络申诉问题的公告

    CCF NOI竞赛委员会将NOIP复赛网络申诉的有关情况公告如下.凡属于以下情况的申诉,均不予受理 1.非公示期限内提出的申诉,不予受理: 2.与个人名次.他人成绩和他人名次有关的申诉,不予受理: 3 ...

  4. CCF关于公开NOIP复赛选手程序的通告

    为使参加NOIP复赛的选手能了解和保存其竞赛时编制的程序,并相互监督,CCF责成各省特派员在复赛后公开选手程序. 公布方式:以提高组和普及组分别为单位,通过网站或邮件等方式公开.以每个选手可以看到本省 ...

  5. 关于NOIP复赛规模的规定

    近年来NOIP初赛参赛人数不断增长,复赛规模也相应扩大,但仍不能满足选手积极参赛及扩大普及面的需求,现对NOIP复赛规模的规则调整如下. 1.每个省赛区可以设立多于两个的复赛考点,但必须在同一个城市, ...

  6. 1269 匈牙利游戏 2012年CCC加拿大高中生信息学奥赛

    1269 匈牙利游戏 2012年CCC加拿大高中生信息学奥赛 时间限制: 1 s 空间限制: 128000 KB 题目等级 : 钻石 Diamond         题目描述 Description ...

  7. $ybt\ 【信息学奥赛一本通】题解目录$

    [信息学奥赛一本通]题解目录 $ \large -> OJ$ $ problem1000 $ \(Answer\) - > $ \large 1000$ $ problem1001 $ \ ...

  8. 1267 老鼠的旅行 2012年CCC加拿大高中生信息学奥赛

    1267 老鼠的旅行  2012年CCC加拿大高中生信息学奥赛 题目描述 Description You are a mouse that lives in a cage in a large lab ...

  9. 信息学奥赛(NOIP)初赛学习方法推荐

    首先声明:本帖针对初学者,本帖只是列出一个大概的框架,不属于自学方法,有条件有能力,请找一位好老师来教,多跟前辈交流经验.(否则多会出现事倍功半的悲剧!) 一.初赛内容 初赛偏重于基础知识. 1. 一 ...

随机推荐

  1. 如何控制jquery ui弹窗下方按钮水平居中

    1.问题背景 一般情况下,jquery ui弹窗下方的按钮是居右的,但是有时系统为了达到美观统一,需要将按钮放在中间 2.问题原因 <!DOCTYPE html> <html> ...

  2. jvm 方法区

    方法区在一个jvm实例的内部,类型信息被存储在一个称为方法区的内存逻辑区中.类型信息是由类加载器在类加载时从类文件中提取出来的.类(静态)变量也存储在方法区中. jvm实现的设计者决定了类型信息的内部 ...

  3. 转载: Linux 操作系统挂起、休眠、关机相关命令

    最近每天的工作都难以在当天结束,而本人又不是那种善于熬夜的人,因此就需要将电脑中的工作文件全部保存,以往都是将所有工作文件保存关机,但是最近发现Linux系统有一个好神奇的命令: 休眠: sudo p ...

  4. Linux Foundation(笔记)

    /************************************************************* * Linux Foundation * 1. 总结一下Linux的基础内 ...

  5. 【c++基础】如何获取工程项目当前路径

    工程项目当前路径 #include <direct.h> int main( ) { ]; _getcwd(buffer, ); std::cout << buffer < ...

  6. Linux系统部署应用ECShop

  7. 生成html报告并整合自动发动邮件功能

    from HTMLTestRunner import HTMLTestRunnerfrom email.mime.text import MIMETextfrom email.header impor ...

  8. ZOJ 3551 吸血鬼 概率DP

    解题报告链接: http://www.cnblogs.com/183zyz/archive/2012/09/13/2683524.html 做法:设当有i个吸血鬼时变成n个吸血鬼的天数的数学期望为dp ...

  9. Zoj 3529 A Game Between Alice and Bob 数论+博弈Nim 快速求数中有多少个素数因子

    本题涉及博弈论中的Nim游戏博弈. Nim游戏博弈详解链接: http://www.cnblogs.com/exponent/articles/2141477.html 本题解题报告详解链接: htt ...

  10. (1)json和pickle序列化模块

    json 和pickle 模块 json和pickle模块下都有4个功能 dumps  <---> loads  (序列化 <--->反序列化) dump <---> ...