1、ACM/ICPC 入门指南ACM 简介:ACM:即国际大学生程序设计竞赛。ACM 国际大学生程序设计竞赛由国际计算机学界著名的 ACM 学会主办,是世界上规模最大、水平最高的国际大学生程序竞赛,每年举办一次。可以说,ACM 国际大学生程序设计竞赛已成为世界各国大学生最具影响力的国际级计算机类的赛事。入门篇每个 ACMer 平时都是靠做题来训练的,现在就以杭州电子科技大学的 OJ 为例简单介绍一下如何使用 OJ 系统,在浏览器上输入杭电的网址 首先,我们需要注册一个 ID,点击 Register new ID填写好自己的个人信息之后,点击 submit,就可以完成注册了,然后在主页右上角的登陆框
2、输入 ID,密码便可以登陆,这个时候点击主页上的 Problem Archive 打开 OJ 的题库点击题号为 1000 的题目 A + B ProblemProblem Description 一栏写的就是题目的描述,很多初学者一开始对全英文的题目会很不习惯,这是很正常的,多查查字典,很快就可以习惯了,而且也可以提高自己的英语阅读水平、 、 、 、 、 、 、 、Input 一栏写的是题目的输入要求,这里提示:每行将会有两个整数 A 和 B,输入进程一直延续到文件读完而结束(也就是要循环输入)Output 一栏写的是题目的输出要求,这里提示:对于每组数据,在一行中输入 A+B 的值接下来的
3、Sample Input 就是示例输入数据,而 Sample Output 就是相应的输出结果在读完题目之后,我们就可以在自己电脑上的编译器上编写代码,等编写好代码之后,点击页面中的 Submit,接着把代码复制上去,再选择相应的语言完成之后点击 Submit,就可以看到 OJ 系统对我们的程序的判题结果了这里返回了一个 Accepted,也就是说通过了 OJ 的判断,题目答对了!1000A + B Problem Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) Total Sub
4、mission(s): 158161 Accepted Submission(s): 50186 Problem Description Calculate A + B. Input Each line will contain two integers A and B. Process to end of file. Output For each case, output A + B in one line. Sample Input 1 1 Sample Output 2 Author HDOJ Statistic | Submit | Discuss | Note #include i
5、nt main() int a,b; while(scanf(“%d %d“, 而 OJ 可能会返回的结果总共有:Accepted 通过 Wrong Answer 错误 Compilation Error 编译错误Runtime Error 运行错误 Time Limit Exceeded 时间超出限制 Presentation Error 输出格式错误 Memory Limit Exceeded 内存超出限制Output Limit Exceeded 输出了多余的东西OJ 的使用基本上就是这样,十分的简单,想要成为一个强大的 ACMer 的话,赶紧多做题吧 _,在这里同时推荐一些 OJ 给大
6、家: 杭州电子科技大学的 OJ,里面有很多简单的入门题,非常适合初学者 北京大学的 OJ,是目前国内最具权威的 OJcii-judge.baylor.edu 官方的 OJ,里面收录了历届亚洲地区赛和世界总决赛的题目http:/ 美国信息学奥林匹克竞赛提高篇ACM 比赛是涉及到很多算法的,大概包括图论、动态规划、计算几何、数论、搜索等等,如何提高自己相关的知识是十分关键的,当然前提是你首先必须得精通一门编程语言,一般 ACM 正规的比赛上可以选用的语言有 C、C+和 Java,但由于 ACM 比赛很看重时间空间等效率,所以大部分情况下 Java 是不占优势的,而 80%以上的参赛选手使用的语言都
7、是C+,因此在这里向大家推荐一本 C+的经典书籍C+ Primer (第 4 版) ,里面详细地介绍了 C+的各种语法和 STL 等知识,什么时候整本书看完了,理解了,你的 C+才算达到基本的水平掌握好一门语言之后,就要开始系统地学习算法知识了,这里推荐算法设计与分析基础这本算法书设计的算法知识十分的全面,而且讲的知识比较基础,很容易就可以看懂,适合初学者,By the way,如果你是计算机学院的学生的话,学校会在大三(大四)教授算法课的时候发这本书下来。在对算法有了基本的了解之后就可以开始阅读郭嵩山教授编写的国际大学生程序设计例题解 ,这套书一共有 5 本,第 1 本和第 3 本是介绍算法
8、知识和相应习题的,而另外 3本则是收录了高中 OI 比赛和大学 ACM 省赛的题目和相应的解题报告,这套书对提高自身实力有着很大的帮助。当上面的步骤你都做完了的时候,相信你已经具备一定的实力了,这个时候就要找好你自己的队友,然后分别钻研不同方向的知识吧,不断练习专项的题目,打比赛,自身实力很快就会有很大的提高的。同时再推荐几本书给大家:算法导论 介绍算法知识的经典组合数学 包含组合排列、图论、动态规划等知识大概就是这样吧,多做题,多和别人讨论,但建议不要每次遇到不会做的题目第一时间就去问别人,因为只有尽力用自己所会的知识去解决自己不会的问题,你才真正地提高实力,说不定哪次灵光一闪,你就创造出了新的数据结构和算法了呢?