龙空技术网

信息学竞赛获奖者的回忆录,如何透彻的了解信息学

一起竞赛资讯 332

前言:

今天小伙伴们对“c语言程序设计谭浩强课后习题答案”大约比较关切,小伙伴们都想要分析一些“c语言程序设计谭浩强课后习题答案”的相关资讯。那么小编在网上网罗了一些有关“c语言程序设计谭浩强课后习题答案””的相关文章,希望看官们能喜欢,看官们一起来学习一下吧!

今天一起竞赛小编汇总了一些准备信息学竞赛的获奖者在学习信息学过程中总结的经验教训,希望大家无论在平时做题还是在比赛中都能注意到,当然不一定能覆盖到所有方面,如有更多意见请留言与大家讨论。

一、如何准备信息学初赛

首先,c语言是一定要学的。(其实c++和Pascal也可以啦)老实说初赛时计算机基础知识拿分挺难的。

八月开始从头看谭浩强的c语言程序设计(一本红红的书)。把书放在了宿舍作为睡前读物。。夏天中午时间也长,用来看书正好。躺着看,看上半小时,看得迷糊了就书一扔睡觉,有时看高兴了精神好,就看一中午。(不过大部分时间是看睡着了被书砸到脸。。)觉得这样利用时间真的挺不错的!既不觉得烦,也不影响正常的学习生活。这样每天看半小时,看二三十页左右,一个月就能看完了。

我建议把另一本对应的也买上,里面有教材上习题的讲解,还有一些别的知识。对了,结构体共用体啥的草草看看就可以了,竞赛基本用不到。数值转换、补码反码啥的要好好看,会考到。

需要理解的都看完了,之后还要留出一些时间来看要背的东西,比如计算机史、计算机设备、计算机网络……这些可以边刷题边看。刷题是相当有用的啊一定要刷!多刷几套,切记找提高组的题,别刷成普及组了。。

这些做完,差不多就该考了。要能都做到,初赛应该差不多能过了。

二、如何准备信息学复赛

复赛就要自己写程序了,因此,只看书已经不够了。不过不看书也不行,你还是需要掌握一些特殊算法。比如贪心算法,比如动态规划……每年题有好多道,考点不完全相同。

因此,这一阶段,你需要不求广只求精了。如果你仍然对某种问题一窍不通,那么干脆丢掉它,研究另外的问题。你要记住,你并不需要做出所有的题。只要做出一到两道,你就达到了目标。

递归一定要熟练掌握!相当好用!以及动态规划堪称noip必备。。可惜楼主没学会。。虽然有点难,但只要攻下它,你可以在我们这个弱省完爆所有人!

看算法的同时,建议多找一些题看,自己先想想能不能写出来,再看看别人的写法。上机训练是很重要的,最好每天能早点写完作业上机练上一两个题。(那段时间每天九点多十点左右干掉作业……人的潜力是无穷的)平时没时间的话就周末。一开始可以先写些简单的题,比如求最小公倍数啊啥的。。先找到手感,慢慢再看那种你第一眼觉得能做的竞赛题,边看别人的答案边自己想,最后再试着自己写。

看竞赛题的过程可能蛮痛苦的。。有可能你觉得你能做,但对着屏幕瞪上一个小时想不出来。。但是坚持就是胜利!解出一道的感觉简直是倍儿棒。

三、常用的信息学备考与考试技巧

1、学会总结,我基本上每学完一个章节的东西就会拿多一段时间来进行总结

总结的时候,先列出一个目录,把这一节学到的知识点写进去。然后在下面分别拓展出这个知识点的原理、用途、编程流程、关键代码、优化、和其它同类算法的比较、复杂度估计、模块化代码、相应习题等等。这样,可以很容易的把一个一个的知识点串在一起记住它。

2、要拿出一定的时间看书,书是人类进步的阶梯

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

3、合理安排时间(特指放假或集训的时候)

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

4、学会适当的休息,不要长时间干同一件事情

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

5、学会心理暗示

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

6、学会抗干扰

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

7、写程序的流程要合理安排

这个很重要,也是非常重要的。我就把自己是怎样做的写出来吧,可能不是太好,只是一个借鉴。

1)我会用大概5分钟左右去完整的阅读题目,因为多一点时间阅读题目,总会有意想不到的发现。

2)用10-15分钟的时间去设计算法,要尽量躲避第一印象思路,因为这个思路往往是错的,设计算法不仅要证明这个算法的正确性,还要从时间、空间等因素来考虑是否,千万不要很草率的结束这个过程,因为当编完程序再来改正错误的算法,往往会浪费更多的时间,例如说高一的我,看见题就想做,大概理出了思路就去编程,但是反过头来发现,其实是错的,结果浪费了时间不说,心情还很不好。

3)利用5分钟的时间写出程序的框架,第一步该干什么,第二步又该干什么,一步一步的写出来,再对每一步进行一些拓展,写出关键的伪代码等等。这样,才能让自己在编程的时候条理性清晰,才能降低出错的几率。

4)编程10-20分钟,前面的工作都做好了,这个过程应该是非常容易的,注意不要犯打错变量等低级错误就行了。

5)查错10-20分钟,往往第一次编出的程序都是错的,具体的查错技巧下面会写出来。这样,一个程序就算写完了,我这个算法流程只是提供一个参考,具体每个流程的时间大家可以看情况去安排,一般简单程序30分钟敲完,中等点的50分钟,难点的1个小时左右。这样才可以更上NOIP3个小时的节奏。

8、静态查错

这个是很重要的,也可以说是非常重要的。何谓静态查错,就是编完代码之后,不去干其它事情,只是安静的从头到尾的把自己的代码阅读一遍,比如说普通的编译错误、变量是不是打错了、数组开的够不够大、程序的逻辑性是不是还存在问题等等。

这个时候,一般是很容易发现错误的,并且还会有一种成就感。但是如果你编完之后去测样例,可能样例是过了(因为样例是很弱的数据),但是其实程序仍漏洞百出,或者测样例都错了,这个时候会严重影响你的心情,再去查错的话,事倍功半。

9、出测试数据是个大学问。

测试数据一般分为,小数据、大数据、极限数据等等。所以我们一定要从这几个方面,各出几组测试数据。小数据可以手算,很容易出结果,相信是OIer最喜欢的。极限数据也是指那些边缘数据,比如说某个数据导致你数组越界、被0除等等,一般很多题目都存在一两组这样的数据。

大数据的话,一般是去检验程序是否超时间和超空间,因为结果是否正确,真的很难手算出来,除非很离谱的错误。

10、检验程序的正确性

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

标签: #c语言程序设计谭浩强课后习题答案