以下仅仅是本人个人的一点点想法,仅供参考,希望对于还没有方向处于盲目阶段的acmer新手会有所帮助。
1,买一本《算法导论》,先自己大概浏览一遍。
收藏acm网址导航http://dh.608088.com/收录了国内外各大OJ。
2. 注册几个OJ
acm.pku.edu.cn
www.608088.com
试着在上面做题,找AC人数最多的做,或者找自己会做的做,不会的一概不管。
遇到不会做的题目,尽量自己想,想不出可以看discuss, 也可以搜索,可以到acm社区(http://www.608088.com/category-4-1.html)查看解决报告。
3.
做到一定数量题目后(我的建议是100左右,当然这个数字自己定,主要是怕做下面的分类有困难,如果你觉得做下面分类没什么问题了,你可以不用做到100,直接做下面的分类)
做下面这个分类:
http://www.608088.com/show-2655-1.html
(这个分类又叫Poj水题,很多地方都有,poj分类很多,个人认为此分类最好,有层次感,内容全面)
做到哪一块不懂可以再看《算法导论》的相应章节,按顺序做,尽量做
如果这一块(如树状数组)觉得不熟练, 可以去搜索再多做这类型的题(如 关键字:poj 树状数组)
4
如果想在校赛(时间为每年5月中旬)取得好成绩,最好要达到该分类中中级的水平
5
多做题,一定要多做题,每天至少(是至少)过个几题(1题也行,但一定要做,天天做,有空就做)
6
如果搜到别人的代码,不管这题你是过了还是没过,最好都仔细读读,吸取其中写的好的地方,尤其是新手,多看看别人的代码很有好处
7
有问题不懂可以在acm群,acm社区问问题,因为都是自学,交流很重要,在(且只有在)想不出来看不懂书网上又搜不到自己实在无法解决时,一定要多问,死缠烂打地问
8
有一定水平后,各个OJ,topcoder,所有的比赛都要关注,能做的比赛尽量做,不管刚开始你有多菜,一题都做不出来也要去参加。并在赛后总结,尽量把能做的题目干掉。
9
所有的大牛都是从只会简单题开始的,不管你现在多菜,只要你坚持,总有一天你会变成大牛。
10
我原来以为只有ACM会辛苦,后来和别人交流了,其实所有的专业比赛(计算机方面)都很辛苦,不仅辛苦,而且都需要很长时间,没有任何比赛是你说随便搞搞短时间就能出成绩的,拼的都是内功,成功没有捷径。
如果你选择ACM,就一定要坚持,而且你必须放弃很多其他东西,不要什么都做什么都没成绩,有所得必有所失,路是自己选的,自己的未来自己负责。

 

 

 

 

我常感叹到,学计算机的人是幸福的,因为在这个领域中有如此多的通俗易懂(相对来说)的经典好书,你需要做的只是坚持把它们一本一本读下去而已。学力学就没有这样的好事了(抱怨一下),除了论文就是论文,满篇公式,晦涩坚深,真不是给人看的(虽然我也没看过几篇)。在这里列出一些我看过或者准备看的算法书籍,以供参考。

1. CLRS 算法导论
算法百科全书,只做了前面十几章的习题,便感觉受益无穷。
2. Algorithms 算法概论
短小精悍,别据一格,准经典之作。一个坏消息: 同算法导论,该书没有习题答案。好消息:习题很经典,难度也适中,只需花点点时间自己也都能做出来。不好也不坏的消息:我正在写习题的答案,已完成前三章,还剩九章约二百道题,顺利的话二个月之后发布。另有中文版名《算法概论》,我没看过,不知道翻译得怎么样。如果有心的话,还是尽量看原版吧,其实看原版与看中文版花费时间不会相差很大,因为大部分时间其实都花费在做习题上了。
3. Algorithm Design 算法设计
很经典的一本书,很久之前看的,遗憾的是现在除了就记得它很经典之外其它都忘光了。
4. SICP 计算机程序的构造和解释
六星之书无需多言,虽然这不是一本讲算法的书,但看完此书有助于你更深入的理解什么是递归。我一直很强调习题,看完此书后你至少应该做完前四章的太部分习题。否则那是你的遗憾,也是作者的遗憾。
5. Concrete Mathematics 具体数学
有人说看TAOCP之前应该先弄清楚这本书的内容,要真是如此的话那我恐怕是看不到TAOCP了。零零碎碎的看了一大半,很多东西都没有时间来好好消化。如果你是刚进大学不久的本科生,有着大把的可自由支配时间,那你幸运又幸福了,花上几个月时间好好的读一下此书吧,收获绝对大于你的期望值。
6. Introduction to The Design and Analysis of Algorithms 算法设计与分析基础
很有趣的一本算法书,有许多在别的书上找不到的趣题,看完此书绝对能让你大开眼界,实在是一本居家旅行,面试装逼的必备佳作。
7. 编程之美--微软技术面试心得
虽说是一本面试书,但如果把前面十几页扯掉的话,我更愿意把它看作是一本讲解题思维的算法小品。在书中,作者通常是给出一个平常解法,然后再一次又一次的优化改进,你可以很清楚的看到基本的算法设计思想是如何得到运用以解决实际问题的。如果你已经有了一些算法的基础,看完本书应该能使你的算法应用能力得到一定的提高。另外,本书生动有趣,也同样适合于初学者。
8. Fundamentals of Algorithmics 算法基础
也是很久之前在学校图书馆借来看的,内容记不太清楚了,只隐约记得此书的动态规划章节犹为出彩。应该是很经典的一本书,个人以为足以和算法导论等所谓当世经典平分秋色,但是怎么好像被人提到的不多,或许是我孤陋寡闻了。
9. How to solve it 怎样解题
二十世纪最伟大的数学思想家之一波利亚的力作,讲一般性的解题方法:怎么认识问题,怎么转换问题,怎么解决问题,如何在问题中得到启发,如何找到一个通往答案的方向。
10. Programming interviews exposed 程序员面试攻略
一本消遣之作。个人以为要比国内的某“XXX面试宝典”纯粹一些,至少也有一些启发性的内容,而不单单是面试题解库。
11. Programming Pearls 编程珠玑
学习算法不仅需要像Alogrithms,算法导论这样的重量级的内功心法,像《编程之美》、《编程珠玑》这样的轻量级的轻功身法也必不可少。前些年网上不是很流行像“给你10亿个数,找到最大的n个”或者“给你10亿个数,找出现次数最多的那个数”之类的百度面试题吗?看了此书你就知道怎么解决了。相比于《编程之美》来说,本书中的示例技巧性略低一些,但是也更有实际应用价值一些。
12. 算法艺术与信息学竞赛
如果算法导论是九阳神功,那这本无疑就是九阴真经。本书是专为参加一些诸如ACM之类程序设计比赛的同学而写的,江湖人称“黑书”。里面讲的都是一些在编程比赛中常用的算法、数据结构,以及一些数论和计算几何等。我虽然并不搞竞赛,但也从此书中受益颇多。
13. An Introduction to Probability Theory and Its Applications
准备看的,现在才发现概率论有多么重要,可惜本科的时候没有好好学。前不久一个同学问我个问题,我半天弄了一个程序给他,他说:这里就不是相关系数么,Excel一下就完事!我晕,我还真不知道那就是相关系数。
14. Numerical Analysis
这本的作者是Richard L. Burden,J. Douglas Faires
数值分析,讨论各种数值算法,比如插值、拟合、积分、微分方程的求解、线性和非线性方程组求解等。准备详细看。
15. TAOCP 计算机程序设计艺术
传说中的TAOCP,说的人多,看的人少。TAOCP四卷堪称是算法藏经阁中的易筋经或者是少林七十二绝技。天下武学,尽出少林,天下算法,尽出TAOCP也。这点你可以顺便翻开一本算法书看看他的引用文献就知道了。我只读了第四卷的部分章节,前三卷暂时还没敢看,还在读书计划表中被无限期搁置。

posted on 2010-06-26 14:13  gracestoney  阅读(109)  评论(0编辑  收藏  举报