ACM进阶计划
闲来无聊,虽然大学的ACM参赛结局很狗血,还是把大学期间ACM集训队训练的一些经验作一个总结,希望看到这篇博文的ACMer能惊醒,至少博主没做到下面的规划,所以2年集训队只能惨淡收场。。。
ACM队不是为了一场比赛而存在的,为的是队员的整体提高。
大学期间,ACM队队员必须要学好的课程有:
l C/C++两种语言
l 高等数学
l 线性代数
l 数据结构
l 离散数学
l 数据库原理
l 操作系统原理
l 计算机组成原理
l 人工智能
l 编译原理
l 算法设计与分析
除此之外,我希望你们能掌握一些其它的知识,因为知识都是相互联系,触类旁通的。
以下学习计划每学期中的内容不分先后顺序,虽说是为立志于学习ACM的同学列的知识清单,但内容不限于ACM的知识。英语之类与专业相距较远的课程请自行分配时间,这里不再列举。
大一上学期:
必学:
1. C语言基础语法必须全部学会
a) 推荐“语言入门”分类20道题以上
b) 提前完成C语言课程设计
2. 简单数学题(推荐“数学”分类20道以上)
需要掌握以下基本算法:
a) 欧几里德算法求最大公约数
b) 筛法求素数
c) 康托展开
d) 逆康托展开
e) 同余定理
f) 次方求模
3. 计算几何初步
a) 三角形面积
b) 三点顺序
4. 学会简单计算程序的时间复杂度与空间复杂度
5. 二分查找法
6. 简单的排序算法
a) 冒泡排序法