基本假设

[复制链接]
发表于 2023-12-30 17:48:29 | 显示全部楼层 |阅读模式
基本假设作为自学党,大家应该具有以下知识和能力:① 能够熟练地运用 C++语言编写程序(或熟练地把 C++语言“翻译”成 Pascal 语言);② 能够阅读代码,理解代码含义,并尝试运用;③ 对各种算法和数据结构有一定了解,熟悉相关的概念;④ 学习了高中数学的算法、数列、计数原理,对初等数论有一些了解;⑤ 有较强的自学能力。代码约定N、M、MAX、INF 是事先定义好的常数(不会在代码中再次定义,除非代码是完整的程序)。N、M、MAX针对数据规模而言,比实际最大数据规模大;INF 针对取值而言,是一个非常大,但又与 int 的最大值有一定差距的数,如 100000000。对于不同程序,数组下标的下限也是不同的,有的程序是 0,有的程序是 1。阅读程序时要注意。阅读顺序和方法没听说过 NOIP,或对 NOIP 不甚了解的同学,应该先阅读附录 E,以加强对竞赛的了解。如果不能顺利通过初赛,你就应该先补习初赛知识。这本《NOIP 复习资料》总结的是复赛知识。如果没有学过 C++语言,应该先选择一本 C++语言教材。一般情况下,看到“面向对象编程”一章的前一页就足够了(NOIP 不用“面向对象编程”,更不用摆弄窗口对话框)。附录 G 介绍了一些书籍和网站。你应该选择一本书,认真地学习。再选择一个网站,作为练习的题库。第一单元对竞赛中常用的操作和简单的算法分析进行了总结,算作对 C++语言的巩固。同时,阅读这一单元之后,你应该选择一个合适的 C++代码编辑器。第二到第六单元介绍了竞赛常用的算法。阅读每一章时,应该先阅读“小结”——名曰“小结”,实际上是“导读”。这五个单元除了经典习题,还有某些思想和算法的具体实现方法。这些信息可能在明处,也可能在暗处,阅读时要注意挖掘和体会。如果有时间,应该在不看解析和代码的前提下独立完成这些题。第七单元是第六单元的一个部分,由于它的内容来自《背包九讲》,所以单独放在一个单元。从第八单元开始,到第十三单元,基本上就没有习题了。换句话说,该“背课文”了。第八单元介绍了常用的排序算法。你可以有选择地学习,但一定要掌握“STL 算法”和“快速排序”。第九单元介绍了基本数据结构,你一定要掌握第九单元前五小节的内容(本单元也有应该优先阅读的“小结”)。有余力的话,第六小节的并查集也应该掌握。前 言2第十单元介绍了与查找、检索有关的数据结构和算法。你也可以有选择地学习。第十一单元与数学有关。数学对于信息学来说具有举足轻重的地位。标有“!”的应该背下来,至于其他内容,如果出题,你应该能把它解决。第十二单元仍与数学有关。第十三单元是图论。学习时要先阅读“小结”,把概念弄清楚。之后要掌握图的实现方法。接下来要掌握一些经典图论算法:Kruskal 算法、Dijkstra 算法、SPFA、Floyd 算法、拓扑排序。附录 F 总结了 2004 年以来 NOIP 考察的知识点,可以作为选择性学习的参考。在学习算法和数据结构的同时,应该阅读和学习附录 A。如果你还有余力,你应该学习第十四单元。第十四单元的内容不是必须要掌握的,但是一旦学会,可以发挥 C++语言的优势,降低编程复杂度。临近竞赛时,应该阅读附录 B 和附录 C,以增加经验,减少失误。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

快速回复 返回顶部 返回列表