ACM如何学?

- sznbno1 LV.连长
- 2015/5/17 16:32:51
将要毕业的弱菜,给未来或者现在在ACM队奋斗的师弟师妹提供点建议。仅供参考。
首先数学要学好,别听一些人说,数学没用,数学很有用。考试分数不能代表什么,关键是要弄懂了原理。
线性代数、离散数学、积分都要学好
大一:
入门阶段,可以在校内OJ或者hdu上做题,hdu上做个400~500来题基本就算可以了,可以先按照lcy的课件做,算入门了。
掌握下面的基础算法:
1、简单数学:
a) 欧几里德算法求最大公约数
b) 筛法求素数
c) 康托展开
d) 逆康托展开
e) 同余定理
f) 次方求模
2、 计算几何初步
a) 三角形面积
b) 三点顺序
3、 学会简单计算程序的时间复杂度与空间复杂度
4、二分查找法
5、简单的排序算法
a) 冒泡排序法
b) 插入排序法
c) 归并排序
d) 快排
E) 基数排序
6、贪心算法经典题目
7、基本的BFS DFS
大二:
这个阶段,可以学一些基本的Windows编程,bat等的编写,深入学习c++编程,网络编程 或者 STL之类的。或者自己一些感兴趣的东西。然后有空多去做外面举行的比赛CF TC之类的。
1、加深了解DFS、BFS、A* 、ida*、退火等
2、数论:
a)基本素数 + 大素数测试(欧拉函数)
b)strling Catalan F....(矩阵)
c)高斯 中国剩余定理 杨氏矩阵 钩子函数
d)二项式系数、Stirling数、Fibonacci数等组合数、发生函数、反演、Mobius反演、整数分拆、Bernoulli数、Euler数、Bell多项式等
3、学会动态规划(LIS、LCS、LCIS 等)、RMQ
4、学会使用好队列栈等优化程序
5、博弈论,学好它
6、学会图论,图的邻接矩阵与邻接表、欧拉回路,哈密顿回路、各种最短路、k短路、生成树算法、强联通、 网络流、 并查集等等
7、将最短路算法用于差分约束
8、树、最小生成树、最小比例生成树
9、字符串的:kmp 、 字典树 、 AC自动机 、 后缀数组 、 hash 、 manacher(n) 、 最小表示法
10、dp 基础dp 、 + 数据结构的 dp 、 + 数学 的dp LIS LCS 、 bit dp 、 seg dp 、 单调队列dp 、 单调栈 dp 、 四边形不等式优化 dp 、状态压缩dp 、 概率 dp 、 树形dp
11、半平面交 、 V 图 、 kd-tree 、三角剖分等等
12、数据结构:(数据结构) 线段树、 树状数组bit 、 hash 、 splay树 、 winner树 、 左偏树 等
大三:
学习一门脚本语言 ruby 、 python之类的
把前面学的加强,然后做做小项目吧
基本好像没有什么可以给大家参考的.-_-!!
以后再继续添加内容。
首先数学要学好,别听一些人说,数学没用,数学很有用。考试分数不能代表什么,关键是要弄懂了原理。
线性代数、离散数学、积分都要学好
大一:
入门阶段,可以在校内OJ或者hdu上做题,hdu上做个400~500来题基本就算可以了,可以先按照lcy的课件做,算入门了。
掌握下面的基础算法:
1、简单数学:
a) 欧几里德算法求最大公约数
b) 筛法求素数
c) 康托展开
d) 逆康托展开
e) 同余定理
f) 次方求模
2、 计算几何初步
a) 三角形面积
b) 三点顺序
3、 学会简单计算程序的时间复杂度与空间复杂度
4、二分查找法
5、简单的排序算法
a) 冒泡排序法
b) 插入排序法
c) 归并排序
d) 快排
E) 基数排序
6、贪心算法经典题目
7、基本的BFS DFS
大二:
这个阶段,可以学一些基本的Windows编程,bat等的编写,深入学习c++编程,网络编程 或者 STL之类的。或者自己一些感兴趣的东西。然后有空多去做外面举行的比赛CF TC之类的。
1、加深了解DFS、BFS、A* 、ida*、退火等
2、数论:
a)基本素数 + 大素数测试(欧拉函数)
b)strling Catalan F....(矩阵)
c)高斯 中国剩余定理 杨氏矩阵 钩子函数
d)二项式系数、Stirling数、Fibonacci数等组合数、发生函数、反演、Mobius反演、整数分拆、Bernoulli数、Euler数、Bell多项式等
3、学会动态规划(LIS、LCS、LCIS 等)、RMQ
4、学会使用好队列栈等优化程序
5、博弈论,学好它
6、学会图论,图的邻接矩阵与邻接表、欧拉回路,哈密顿回路、各种最短路、k短路、生成树算法、强联通、 网络流、 并查集等等
7、将最短路算法用于差分约束
8、树、最小生成树、最小比例生成树
9、字符串的:kmp 、 字典树 、 AC自动机 、 后缀数组 、 hash 、 manacher(n) 、 最小表示法
10、dp 基础dp 、 + 数据结构的 dp 、 + 数学 的dp LIS LCS 、 bit dp 、 seg dp 、 单调队列dp 、 单调栈 dp 、 四边形不等式优化 dp 、状态压缩dp 、 概率 dp 、 树形dp
11、半平面交 、 V 图 、 kd-tree 、三角剖分等等
12、数据结构:(数据结构) 线段树、 树状数组bit 、 hash 、 splay树 、 winner树 、 左偏树 等
大三:
学习一门脚本语言 ruby 、 python之类的
把前面学的加强,然后做做小项目吧
基本好像没有什么可以给大家参考的.-_-!!
以后再继续添加内容。

- eltooo
- 2015/5/17 23:51:42
高手之路哦!!!支持!!!

- haracream
- 2015/5/18 16:21:11
顶浩哥。

- 初入江湖
- 2015/5/19 9:18:22
顶上!

- 一世枭雄
- 2015/5/19 18:05:19
好啊,就这样吧。

- 风雨无阻
- 2015/5/20 11:04:02
大神

- jun铁血男儿
- 2015/5/21 2:36:34
膜拜下。。。。。。。。。。。。