ACM怎么入门(零基础)?
其实您可以把ACM竞赛和语文的作文进行类比。首先,您得学会语法,对应于语文中的各种汉字的拼写。这肯定是开学第一课——小学水平。这时候您应该有简单那的表达能力以及能阅读简单的代码,正如小学生还是会造句,写简单的记叙文日记,以及阅读简单的睡前5分钟的小故事。一些经典的代码,如计算阶乘,计算斐波那契数列,计算水仙花数,判断一句话有多少个大写字母,小写字母,数字等,也应该能通过一定的思考写出来。并且可以跟别人讲述这份代码是怎样运行的。
学完语法之后,您也算是一条腿入门了,那就想办法把另一条腿也入门,于是您就得接触算法,对应于语文中的各种修辞手法。算法是博大精深啊~正如中华文化一样,各种修辞手法应接不暇。这时就是中学生学的知识了。想写出优美准确有效简洁的代码,就像想写出优美准确有效简洁的作文,需要很多的技巧。这时候你就要接触一些简单的数据结构(堆,栈,队列,邻接表,树,图等等),还有一些简单算法(搜索,排序,动态规划,枚举,字符串处理,最短路,生成树)。
完了吗?
没有。难道高考完语文就学完了?怎么可能,想写出更高效的代码,还需要学习高级的数据结构(树状数组,线段树,平衡树,树链剖分,动态树等),高级的算法(网络流,二分匹配,离散对数,欧拉函数等),然而这已经是入门之后的知识了。
其实您可以把ACM竞赛和语文的作文进行类比。首先,您得学会语法,对应于语文中的各种汉字的拼写。这肯定是开学第一课——小学水平。这时候您应该有简单那的表达能力以及能阅读简单的代码,正如小学生还是会造句,写简单的记叙文日记,以及阅读简单的睡前5分钟的小故事。一些经典的代码,如计算阶乘,计算斐波那契数列,计算水仙花数,判断一句话有多少个大写字母,小写字母,数字等,也应该能通过一定的思考写出来。并且可以跟别人讲述这份代码是怎样运行的。
学完语法之后,您也算是一条腿入门了,那就想办法把另一条腿也入门,于是您就得接触算法,对应于语文中的各种修辞手法。算法是博大精深啊~正如中华文化一样,各种修辞手法应接不暇。这时就是中学生学的知识了。想写出优美准确有效简洁的代码,就像想写出优美准确有效简洁的作文,需要很多的技巧。这时候你就要接触一些简单的数据结构(堆,栈,队列,邻接表,树,图等等),还有一些简单算法(搜索,排序,动态规划,枚举,字符串处理,最短路,生成树)。
完了吗?
没有。难道高考完语文就学完了?怎么可能,想写出更高效的代码,还需要学习高级的数据结构(树状数组,线段树,平衡树,树链剖分,动态树等),高级的算法(网络流,二分匹配,离散对数,欧拉函数等),然而这已经是入门之后的知识了。
2015-06-25 未知