重开吐槽有感及OI书籍题库推荐 -自己选的路 跪着也要走完

凉爽的清风伴随着烈日洒向这片土地,山区的夏天似乎早已来到。回想过去的高一上学期与寒假,不禁叹息,荒废了多少时光。虽然自称为OIer,但却是个半吊子,在过去的NOIP2015中,从零开始的我,刚上完三四节课的我就裸考了笔试,差0.5分与复赛失之交臂。再见了2015的比赛,考试过后,感觉OI没什么用处,有荒废了许多,竞赛班由次居然连续3个星期都没开过课,也就是1月1课。可能是不重视吧,在2015noip中,我校复赛才入几个人,学长得了奖,最高的也还是省二。应该算是弱校了吧。不由地怀疑自己。

OI课上教的是Pascal,虽然学完了语言,但是没有多少办法来刷题,算法也没学,自学也没有方向。碰巧手边有本刘汝佳的《算法竞赛入门经典》,寻思好久决定自己换语言重新开始,希望老师别怪我,希望自己能好好学,记得昨天课上就少了一个同学,不知道人数最后会有多少。

实力有限 题解可参照下面神犇Blog看, 自信写Blog,反正书写是为了更好地思考,就献丑了。

最后来点小干货吧,可能大家早已熟知于,让我凑点字数好吧。

书籍推荐 《算法竞赛入门经典》(第二版) 《算法导论》 《算法竞赛入门经典——训练指南》《C++ Primer 5th》 (个人觉得必备)

《算法艺术和信息学竞赛》《新编实用算法》(据说高难度) 《信息学奥赛一本通》《挑战程序设计竞赛》(他人推荐)

《The Art of Computer Programming》 《C++ Template Metaprograming》(大雾~烧钱)

题库 BZOJ(权限号) Codevs USACO 这三个还是个人觉得最赞的

http://acm.hust.edu.cn/vjudge/toIndex.action 各类题库汇总

https://www.codechef.com/

比赛                       http://codeforces.com/

http://uoj.ac/

http://contesthunter.org:8080/

编译工具 noip吧精品区 OIpacks 安装

必读        http://www.nocow.cn/index.php/RP%E5%AF%BC%E8%AE%BA RP导论

神犇Blog http://hzwer.com/ 黄学长

http://jiruyi910387714.is-programmer.com/       jiry

http://wjmzbmr.com/     WJMZBMER

http://vfleaking.blog.163.com/ VFLKING 膜拜 ETC.

VZCH  http://www.cnblogs.com/geniusvczh/archive/2013/03/24/2978575.html

http://cppblog.com/vczh

http://www.nocow.cn/index.php/%E9%A6%96%E9%A1%B5  NOCOW

个人推荐书籍     《暗时间》《把英语用起来》《和时间做朋友》 etc.

通向世界的工具    Latern SoftEther V*N

前辈教导 侵权删

需要学的知识:40%来自于书本、40%来自于做题、20%来自于网上其它的资料(至少我是这样)

我的OI技巧:

1、学会总结,我基本上每学完一个章节的东西就会拿多一段时间来进行总结。总结的时候,先列出一个目录,把这一节学到的知识点写进去。然后在下面分别拓展出这个知识点的原理、用途、编程流程、关键代码、优化、和其它同类算法的比较、复杂度估计、模块化代码、相应习题等等。这样,可以很容易的把一个一个的知识点串在一起记住它。(附录里有我的总结样例)

2、要拿出一定的时间看书,书是人类进步的阶梯。相信很多OIer都很喜欢做题,忽略了看书这个重要的环节。其实只有阅览群书,才能学到更多的知识。例如,某个算法你会N^3的算法,但是某本书上用N^2,甚至N的复杂度就给解决了。如果不看书,如果考试正好出这个知识点,或许你就只能拿部分分了。

3、合理安排时间(特指放假或集训的时候)。清晨7点到9点这段时间,是人们头脑最清醒的时间,这个时间段内,尽量不要去调程序,可以去做一些其它的事情,比如看书、总结等等。而9点之后这段时间,建议去做题,这个时候一般花一个小时就可以编出在其它时间要花一个半小时才能编出的程序。到了中午,吃完饭一定要睡觉,否则下午会很没精神,效率会很低的。下午呢,一般就比较综合了,比较随意了,可以自己安排。晚上,我一般都是继续调程序,因为想不出晚上干什么会高效一些。

4、学会适当的休息,不要长时间干同一件事情。当你编程序进入了一个死角的时候,或许思维会很混乱,总想找出错误或优化这个算法,但是一片空白,很盲目。这个时候,你真的需要休息。去外面小小的溜达一圈,看一看窗外的风景,这样就可以换一个心情,换一个思维。在你休息完之后,你会发现,刚才你之所以找不出错误,是因为身在此山中。

5、养成编代码的良好习惯,这个各位可以参考其它大牛的程序。我的程序一般都是用过程堆起来的,每个程序必有的Init和Main过程,可能Init里只有个read(n),但是为了保持程序美观,完整个人的习惯,还是单写了一个过程。但是不要大量的调用过程,比如在某个3重循环里调用过程,因为调过程也是需要一定时间的。除了这个,我还在每个过程中间添加了一个分割线,以便阅读。还有,各位还需要注意换行、空格等问题,养成良好的习惯,尽量使其美观,方便阅读(附录里有代码样例)。

6、学会心理暗示。这个也是很重要的,当你做不出某个题的时候,一定不要乱,心理默默的暗示自己,既然自己不会,别人做起来一定也不会舒服。当你做出某个题,一定不要盲目的高兴,要把自己的思维控制住,这样才能用形象的思维去做下一个题,所以我们一定要暗示自己,这个题自己会做,别人做起来也会很容易的,不能骄傲。

7、学会抗干扰,干扰有很多类,大概就是人为、自然因素。人为因素,当别人早早的做完题或者别人在说话、讨论的时候,一定要控制住自己,不要慌乱,否则你可能会编的程序最后得个0分,所以一定要在众多次干扰中,积累抗干扰的经验。自然因素,当太阳直射你的时候、当寒风呼啸你的时候、当键盘生硬难敲的时候、当屏幕反光的时候,你一定要学会去适应,因为很多时候在考场上会出现这样或者那样的问题,给你的只有3个小时,没有多余的时间去考虑这些无关的问题,只能适应。综上所述,抗干扰很重要,即使没有干扰,我们也可以为自己去制造干扰。

8、写程序的流程要合理安排,这个很重要,也是非常重要的。我就把自己是怎样做的写出来吧,可能不是太好,只是一个借鉴。1)我会用大概5分钟左右去完整的阅读题目,因为多一点时间阅读题目,总会有意想不到的发现。2)用10-15分钟的时间去设计算法,要尽量躲避第一印象思路,因为这个思路往往是错的,设计算法不仅要证明这个算法的正确性,还要从时间、空间等因素来考虑是否,千万不要很草率的结束这个过程,因为当编完程序再来改正错误的算法,往往会浪费更多的时间,例如说高一的我,看见题就想做,大概理出了思路就去编程,但是反过头来发现,其实是错的,结果浪费了时间不说,心情还很不好。3)利用5分钟的时间写出程序的框架,第一步该干什么,第二步又该干什么,一步一步的写出来,再对每一步进行一些拓展,写出关键的伪代码等等。这样,才能让自己在编程的时候条理性清晰,才能降低出错的几率。4)编程10-20分钟,前面的工作都做好了,这个过程应该是非常容易的,注意不要犯打错变量等低级错误就行了。5)查错10-20分钟,往往第一次编出的程序都是错的,具体的查错技巧下面会写出来。这样,一个程序就算写完了,我这个算法流程只是提供一个参考,具体每个流程的时间大家可以看情况去安排,一般简单程序30分钟敲完,中等点的50分钟,难点的1个小时左右。这样才可以更上NOIP3个小时的节奏。

9、静态查错。这个是很重要的,也可以说是非常重要的。何谓静态查错,就是编完代码之后,不去干其它事情,只是安静的从头到尾的把自己的代码阅读一遍,比如说普通的编译错误、变量是不是打错了、数组开的够不够大、程序的逻辑性是不是还存在问题等等。这个时候,一般是很容易发现错误的,并且还会有一种成就感。但是如果你编完之后去测样例,可能样例是过了(因为样例是很弱的数据),但是其实程序仍漏洞百出,或者测样例都错了,这个时候会严重影响你的心情,再去查错的话,事倍功半。

10、出测试数据是个大学问。测试数据一般分为,小数据、大数据、极限数据等等。所以我们一定要从这几个方面,各出几组测试数据。小数据可以手算,很容易出结果,相信是OIer最喜欢的。极限数据也是指那些边缘数据,比如说某个数据导致你数组越界、被0除等等,一般很多题目都存在一两组这样的数据。大数据的话,一般是去检验程序是否超时间和超空间,因为结果是否正确,真的很难手算出来,除非很离谱的错误。

11、检验程序的正确性,这个除了设计算法时的证明外,如果有时间允许,我们还可以写一个效率低但是绝对正确的算法来和原程序进行对比。这样,我们利用上面出测试数据的学问,加上这个手段,一般可以80%的判断出你写的这个程序是否正确,进而不断完善。(还有一个小技巧,就是利用.bat文件,判断两个输出是否等价。具体怎么用,可以看附录)

12、善于交流,这个就不知道怎么说了,就是多和其它人交流。

其它:1)培养对OI的兴趣。2)胜不骄,败不馁。3)不抛弃,才有希望;不放弃,才能成功。4)天才是99%的汗水+1%的灵感,对学OI尤其适用。5)学完某个算法时,尽量把模块化代码保存下来。6)如果NOIP一等奖名额只有1个,那么相信自己就是那一个。7)制定好目标,分为远大的目标(上哪个大学),中期的目标(拿一等、冲省队、夺金牌),近期的目标(学会哪个算法、模拟赛要达到多少分)。8)赛前一周多复习,多做简单题,不要再去钻高难度的题,这是NOIP不是NOI。9)专心致志,学习时就不上QQ,不上论坛。10)细心,细心,再细心。

希望各位OIer以后回想起自己的OI时光,不要为自己留下遗憾。

第一次写 排版很乱 内容有错见谅

时间: 2024-07-31 14:02:51

重开吐槽有感及OI书籍题库推荐 -自己选的路 跪着也要走完的相关文章

一站到底题库

一站到底题库 bella 来自: bella(要有强大的内心) 2012-11-09 13:10:12 文学常识 1. 第一位女诗人是:蔡琰(文姬) 2. 第一部纪传体通史:史记 3. 第一部词典是:尔雅 4. 第一部大百科全书是:永乐大典 5. 第一部诗歌总集是:诗经 6. 第一部文选:昭明文选 7. 第一部字典:说文解字 8. 第一部神话集:山海经 9. 第一部文言志人小说集:世说新语 10. 第一部文言志怪小说集:搜神记 11. 第一部语录体著作:论语 12. 第一部编年体史书是:春秋 1

国学题库整理

1.六艺:一曰五礼,二曰六乐,三曰五射,四曰五御,五曰六书,六曰九数. 其中,“御”不仅指驾驶,还指驾驭下属乃至国家的知识. 2.竹林七贤:嵇康.阮籍.山涛.向秀.刘伶.王戎及阮咸七人. 3.乡试录取者称为“举人”,会试录取者称为“贡生”,殿试录取者称为“进士”. 4.乡试第一名称“解元”.明.清科举分为三甲.头甲三人,即状元.榜眼和探花,赐进士及第:二甲第一名,称“传胪”(起初,三甲头名亦称传胪,后仅限于二甲头名),中二甲赐进士出身:三甲人数最多,赐同进士出身. 5.襁褓:未满周岁的婴儿 孩提

《PHP面试笔试真题库》——PHP面试的好帮手

你好,是我琉忆. 一个文艺的PHP开发工程师. 很荣幸能够在这里带来我的第一本新书——<PHP程序员面试笔试真题库>. 一.创作过程 <PHP 程序员面试笔试真题库>是我的第三本书,继<PHP 程序员面试笔试宝典>和<PHP 程序员面试笔试真题解析>后的第三本.它的出现完全是为了弥补宝典和真题解析的欠缺.宝典重点讲的是PHP相关的知识点,而真题解析针对的重点则是面试题的讲解,而真题库的重点在于罗列往年的PHP套题,让应聘者自行去测试PHP真题,更好的应对PH

更新 | 2019年9月计算机二级office模拟题库

随着2019年上半年计算机二级考试的完美落幕,紧接着的便是9月份的考试了. 到目前为止,下半年9月份计算机二级考试报名开通时间在6月前后,现在也基本结束. 2019年9月(56次)全国计算机等级考试(以下简称NCRE)将于9月中旬举行.已经报名的同学请利用暑期时间好好准备吧! > 2019年9月份最新二级题库看文末 ▼ 公众号内回复关键词:2305获取下载链接 考前学习 计算机二级考试方法为机考,时间为120分钟,分数100分.得60分以上则通过考试. || 好好打基础,温习知识点 不管是自学考

猿题库 iOS 客户端架构设计(原文地址:http://gracelancy.com/blog/2016/01/06/ape-ios-arch-design/)

猿题库 iOS 客户端架构设计 序 猿题库是一个拥有数千万用户的创业公司,从2013年题库项目起步到2015年,团队保持了极高的生产效率,使我们的产品完成了五个大版本和数十个小版本的高速迭代.在如此快速的开发过程中,如何保证代码的质量,降低后期维护的成本,以及为项目越来越快的版本迭代速度提供支持,成为了我们关注的重要问题.这篇文章将阐明我们在猿题库 iOS 客户端的架构设计. MVC MVC,Model-View-Controller,我们从这个古老而经典的设计模式入手.采用 MVC 这个架构的

北大ACM题库习题分类与简介(转载)

在百度文库上找到的,不知是哪位大牛整理的,真的很不错! zz题 目分类 Posted by fishhead at 2007-01-13 12:44:58.0 -------------------------------------------------------------------------------- acm.pku.edu.cn 1. 排序 1423, 1694, 1723, 1727, 1763, 1788, 1828, 1838, 1840, 2201, 2376, 23

题库类产品如何计算题目的难度值

一.引言 题库类产品(如猿题库.易题库等)的一个标配功能是预测用户未来要进行的某项考试得分,我们称之为目标考试预测分.以猿题库高考为例,即将参加高考的学生通过在题库上做大量练习,练习的效果会以学生的高考预测分呈现出来,这是学生最关注的指标,也是整个题库产品中最关键的数据.为了让“预测分”数据更加准确,我们引入了能力评估模型,通过测算用户在所有知识点上的能力水平,并将其量化成为一个数值.能力评估模型中有两个重要参数:题目难度值.用户答题的正确率.简化为:A=f(an,d)其中A表示能力值,an表示

OCP读书笔记(27) - 题库(ExamG)

601.You need to perform a block media recovery on the tools01.dbf data file in the SALES database byusing Recovery Manager (RMAN).Which two are the prerequisites to perform this operation? (Choose two)A. You must configure block change tracking fileB

OCP读书笔记(25) - 题库(ExamE)

401.Which of the following are correct about block media recovery? (Choose all that apply.)A. Physical and logical block corruption is recorded automatically in V$DATABASE_BLOCK_CORRUPTION.B. Logical corruptions are repairable by BMR.C. Physical corr