为什么你学了那么多算法依然得0分?
文章出处:挖土机青少年编程 │ 网站编辑:WOTOJO
在我们多年的教学实践中,经常会遇到的一种情况:转学来找我们学习信息学奥赛的学生,常常说已经学了搜索、 动态规划,甚至图论。最开始我们一听,学了这么多,岂不是普及组400分满分。实际上当我们给他一套普及组难度 的测试卷,结果往往得分不超过30分,连只要会排序就能做的题目都做不出来。在遇到了很多次这种情况后,我们也就 见怪不怪了,这是典型的学过,但是根本不会做题。
其实,要想拿普及组一等奖,学透贪心和排序两个算法就已经够了。
那么为什么会出现0分的情况呢?给大家分析一下:一个算法的学习,至少经历5个阶段。
首先是知道了概念,其次是弄清楚算法的基本原理,再之后就是深入理解这个算法,也就是说,理解与它相关的前后知 识结构。接下来,就是可以熟练使用代码实现这个算法。最后,也就是第五个阶段,是灵活应用这个算法,也就是在考场上 ,遇到一个题目,你可以准确地判断出应该使用哪个算法去解决问题。这个也是我们经常说的直觉。
所以,我们遇到的这些同学,看上去学了很多算法,其实往往连第二阶段算法原理都没有搞清楚,自然是一道题都不会解。
用一个例子解释这种情况:同学们动辄就说学到了动态规划,实际上动态规划是普及组会考,提高组会考,甚至在N OIP及省选中,都会考到的算法,所以不能轻易认为自己已经学会了动态规划。