我的ACM入门指南 - 图文 下载本文

Accepted 通过 Wrong Answer 错误 Compilation Error 编译错误 Runtime Error 运行错误 Time Limit Exceeded 时间超出限制 Presentation Error 输出格式错误 Memory Limit Exceeded 内存超出限制 Output Limit Exceeded 输出了多余的东西

OJ的使用基本上就是这样,十分的简单,想要成为一个强大的ACMer的话,赶紧多做题吧 ^_^,在这里同时推荐一些OJ给大家:

acm.hdu.edu.cn 杭州电子科技大学的OJ,里面有很多简单的入门题,非常适合初学者

acm.pku.edu.cn/JudgeOnline 北京大学的OJ,是目前国内最具权威的OJ

cii-judge.baylor.edu 官方的OJ,里面收录了历届亚洲地区赛和世界总决赛的题目 http://ace.delos.com/usacogate2 美国信息学奥林匹克竞赛

提高篇

ACM比赛是涉及到很多算法的,大概包括图论、动态规划、计算几何、数论、搜索等等,如何提高自己相关的知识是十分关键的,当然前提是你首先必须得精通一门编程语言,一般ACM正规的比赛上可以选用的语言有C、C++和Java,但由于ACM比赛很看重时间空间等效率,所以大部分情况下Java是不占优势的,而80%以上的参赛选手使用的语言都是C++,因此在这里向大家推荐一本C++的经典书籍《C++ Primer》(第4版),里面详细地介绍了C++的各种语法和STL等知识,什么时候整本书看完了,理解了,你的C++才算达到基本的水平

掌握好一门语言之后,就要开始系统地学习算法知识了,这里推荐《算法设计与分析基础》这本算法书设计的算法知识十分的全面,而且讲的知识比较基础,很容易就可以看懂,适合初学者,By the way,如果你是计算机学院的学生的话,学校会在大三(大四)教授算法课的时候发这本书下来。

在对算法有了基本的了解之后就可以开始阅读郭嵩山教授编写的《国际大学生程序设计例题解》,这套书一共有5本,第1本和第3本是介绍算法知识和相应习题的,而另外3本则是收录了高中OI比赛和大学ACM省赛的题目和相应的解题报告,这套书对提高自身实力有着很大的帮助。

当上面的步骤你都做完了的时候,相信你已经具备一定的实力了,这个时候就要找好

你自己的队友,然后分别钻研不同方向的知识吧,不断练习专项的题目,打比赛,自身实力很快就会有很大的提高的。

同时再推荐几本书给大家:

《算法导论》 介绍算法知识的经典

《组合数学》 包含组合排列、图论、动态规划等知识

大概就是这样吧,多做题,多和别人讨论,但建议不要每次遇到不会做的题目第一时间就去问别人,因为只有尽力用自己所会的知识去解决自己不会的问题,你才真正地提高实力,说不定哪次灵光一闪,你就创造出了新的数据结构和算法了呢?