针对不同水平大一新生的算法竞赛向建议
首先是零基础的同学:
这部分同学可以先开始学习C语言基础编程。暂时只要学完基本输入输出,变量,顺序结构,分支结构,循环结构,数组,字符串即可。目前学校大部分专业都有编程基础课,部分专业要求学习C语言,计算机专业要求大一上学期就学习C语言。无论各位同学未来如何发展,学习C语言好处多多。
有许多优秀的教材,这里推荐两本:
-
《啊哈C》这本书的作者是前资深信息学教练。书中配有插图,内容浅显,简单易懂。非常适合新手
-
小甲鱼的《零基础入门学习C语言》, 讲解生动形象,内容非常全面,完全可以满足包括计算机在内所有专业,以及算法竞赛对C语言的全部要求。如果用这本书的话,注意一下,不要按照他的教程来配练习环境。
练习环境的配置推荐,可以看
-
小熊猫DEVC++下载:http://royqh.net/redpandacpp/download/ 比DEV更好用的C++简单IDE工具
-
DevC++下载:https://sourceforge.net/projects/orwelldevcpp/ C++简单的IDE工具
-
VS code下载:https://code.visualstudio.com/ 插件型编辑器,配置有一定难度但最好用
最后给这部分同学一些建议:不要因为自己暂时不如身边的人而灰心。多数acmer在大一阶段都是从这一水平起步的。大学是一个有足够自主分配学习空间的学习阶段,即使是暂时的落后,只要愿意学都可以赶上。加油喵!
提供三个练习题单:
然后是有一定编程基础,但暂未接触算法的同学:
首先可以开始了解C++。得益于功能丰富,使用简单,运行效率高的优点,C++在算法竞赛中的使用占有压倒性的比例。有其他语言的基础,学习起来应该很快。学习的时候,特别关注一下stl(标准模板库)这一部分,里面有一些算法竞赛中很常用的功能。
然后是可以了解一些简单的算法。包括排序,枚举,贪心,模拟,前缀和,差分,递归,深度优先搜索。还要回顾一下大家很久没有接触的基础数论,就是最大公因数,最小公倍数这俩。
在算法基础领域,各平台都有相对优质的练习资源。
-
洛谷 程序在线测评网站 (OJ)有大量的练习题
-
牛客竞赛 牛客网的子站,专为算法竞赛设计。初学者可以根据牛客竞赛主页的tracker中的技能树来学习
-
Codeforces(cf) 俄罗斯OJ,阴间时间会有优质练习赛,锻炼脑子
-
AtCoder(atc) 日本OJ,夜间会有练习赛,和cf相比时间更友好,题目更入门
书籍的话推荐洛谷出版的《深入浅出程序设计竞赛》。因为版权原因就不发了,大家自行获取。
更深层次的算法知识包括:记忆化搜索,二分,倍增,树,图论,并查集,动态规划,双指针,单调栈,单调队列,数论。可以继续推进。
最后是已经有算法竞赛经验的同学:
这部分同学一般都有训练的方向和目标,我们也没有什么可建议的了。欢迎来探讨算法知识,以及完成我们为这部分同学准备的进阶题单。

浙公网安备 33010602011771号