返回信息流近年来随着全国各高校ACM竞赛活动的展开,大量在线题库,ACM网站,论坛ACM讨论版层出不穷,除了国内老牌的ZOJ(浙大)的OnlineJudge,蓬勃发展的POJ(北大),新秀TOJ(同济)SOJ(川大)还有哈工大,汕头,中科大等等,国外的有UVA,Ural,SGU,USACO等著名网站。
下面根据我以前的使用情况向大家推荐几个,仅供参考。
ZOJ
http://acm.zju.edu.cn/
特点是题目很多,大部分是ACM regional and final的题目,系统稳定,最突出的优点是他的Forum,里面每道难题的讨论基本上都有,如果遇到WA了很多回都不明白错在那里的题,可以用题号search一下,看看老贴基本上就差不多了,但论坛上有一些题目可以AC的代码贴出来了,大家最好自己做,毕竟一个贴出来的high ranking对自己没好处。
POJ
http://acm.pku.edu.cn/JudgeOnline/
特点是系统很先进,存储了所有你提交的程序,而且可以看到题目的来源,缺点就是用于题目的讨论Discuss很少有讨论。如果遇到问题,我通常的做法是,照着Problem Status上面排在前面的Authors,给他们发mail,谦虚的求代码学习,呵呵
另外,POJ每月有月赛,题目是高手们出的,《算法艺术与信息学竞赛》作者刘汝佳就经常为比赛命题(此人现在大三,可早已是国家队教练了,大大牛人),另外,在regional and final比赛之前会有一系列warmup比赛,这为大家积累实战经验提供了巨大方便。
TOJ
http://acm.tongji.edu.cn/people/ps/index.php
刚刚一周年,我不太熟悉,但是他的特点是提供了很多最经典的问题,而且大部分题目是中文的,是打基础的好地方,是上交大集训队推荐给新手的网站。
UVA
http://acm.uva.es/problemset/
位于西班牙,传说是世界上最古老的最著名的在线题库,题目被很多老师推荐,还有很多比赛,只是必须用代理才能上,可能不太方便。
OIBH
http://oibh.kuye.cn/
这个是刘汝佳办的网站,《算法艺术与信息学竞赛》里面说的网站,上面有书上例子习题的一些资料,还有Ural,USACO,SGU等题库的题目帮助,IOI国家队天才们的论文解题报告,等等非常好的资料。但这个网站现在已经停止更新,只有一个镜像可以使用(好像也得挂代理)
http://other.mblogger.cn/dwyak
上交世界冠军队Spirit的队长dwyak的Blog,有他们训练比赛的记录总结,我看了佩服的五体投地!
http://acm.pku.edu.cn/course/
北大计算机系进行ACM相关培训的课程资料,我推荐作为我们训练的计划,有课件,题目推荐,题解等等
这次先介绍这些,还有一些资源,以后我慢慢说,大家要多割题,尽快适应ACM的题目形式,有问题大家一起多讨论~,我在ZOJ,POJ的账号都是billmaths,我做过的基本上都是简单题。。。大家可以参考
这是一条镜像帖。来源:北邮人论坛 / scs / #2733同步于 2026/5/10
该镜像源已超过 30 天没有更新,可能在源站已被删除。
SCS机器人发帖
[ACM]在线提交系统和其他网上资源介绍
billmaths
2026/5/10镜像同步2 回复
订阅后,新回复会通过你的通知中心匿名送达。
2 条回复
转一个上交的贴:
发信人: tenshi(tenshi), 信区: ACMICPC
标 题: 有志进ACM队的看过来
发信站: 饮水思源 (2005年03月14日12:51:18 星期一), 站内信件
建议多做点 Online Judge 的题目 (在线提交题目,立即知道对错),
对于初学者,建议去看看 http://acm.tongji.edu.cn,里面的习题很多是中文的
http://ace.delos.com/usacogate也是一个不错的选择,可以练基本功
Jeru 同学做了一个很不错的辅导网页 http://202.120.61.1/oibh/usacogate/
http://acm.timus.ru和 http://acm.sgu.ru
两个俄罗斯的题库,数学题较多, 后者偏难,
Comars 同学做的 URAL 辅导网页 http://202.120.61.1/oibh/ural
Tiaral 同学做的 SGU 辅导网页 http://202.120.61.1/oibh/sgu
OIBH 已经关闭,这里有一个镜像 http://oibh.kuye.cn/
http://acm.uva.es/建议只做 contest volumnes
http://acm.zju.edu.cn/
http://acm.pku.edu.cn/
两个 ACM/ICPC 的真题题库,CERNET内,访问速度极快
近期有非常多的 Online Contest (同步比赛,即时判题且给出排名),请留意置低
下文转自TOJ:
新手进阶指南
Tongji Online Judge在各方人士的共同努力下现在越做越好了。
在题目方面基本能达到训练一个新手的目的,并且中等水平的选手也能有一定的提高,高级水平的选手也可以做一些难题,比如1133。
这里主要讲一下新手的进阶。侧重对TOJ题目的归类和提示。相信对新手能有一定的帮助。
前20题都是基础中的基础,着重考察选手对编程语言的熟悉程度,如果对pascal或c的使用还不熟练的话做这些题可以帮助熟练编程。这些题也可作为C、Pascal的课程作业。如果觉得做这些题有困难,那不要紧,只要用心看看介绍编程的书,肯定可以弄懂的。
做完前20题后要看一些基础的算法书籍,把基本的算法搞懂。像递归、二分、宽搜、深搜、简单的图论、数论、简单的组合数学。重点根据书上的例题理解算法的实质,思想,能做到有一定领悟。这时需要做一些题目来巩固了。
首先可以做搜索题,搜索是博大精深的,诸多细节技巧都需要靠平时的积累领悟,根据自己练习的目的挑一些题练习。
然后可以做简单的数学题,对组合数学、数论有个大致的概念。
再然后可以做DP(Dynamic Programming)类题目了。DP也是非一日之功,练好DP就像练好了内功,这时可以做一些DP的基础题,体会一下,然后做一些提高题,如果不会做,一定要自己想通为什么别人这样设定状态数组,他的技巧在哪里。oibh上很多的国家集训队关于DP的论文是必看的。
图论里有很多基础的东西需要学习,先把图论里面基本的定义看懂,然后把经典的算法看懂,比如最短路、生成树、割点、连通分量等等。如果不会做,一定要好好看书。
很多新手会问碰到不会做的题目怎么办。首先应该考察一下为什么不会做这题,如果是书本上的知识点没掌握,那要赶紧把书本找来,仔细理解之后再来想这题。如果知识点基本都掌握了,那么可以利用网络的资源,多搜索一下关于这题的讨论,看看别人是怎么想的,看是否可以给自己提供思路。总之一条,要自己多开动脑子。重在理解这一题的算法,而不是只知道算法,自己把它编程实现了就算了。对待算法和程序要用严谨的态度,没有搞懂的地方要花力气把它搞懂,这样才能不断提高。
看书是必须的,而且也是迅速提高的最好方法,不要等到做题时才去理解书上的知识点,而要对知识点有了充分的理解后再去做题,这样才能事半功倍,否则看到难题,从哪方面下手的思路都没有。
关于刚保送进来的同学,在同济大都是noip一等进来的,绝大部分没有进过省队,所以你们相比别的刚接触编程的同学有一定的优势,但这个优势相对于现在比赛的难度和深度来说是不明显的,可能别人努力练习两个月就超过你了。必须认识清楚的是noip的难度和acm竞赛的差距是很大的,上面我讲的这些可能你们都知道,但这只是刚入门。高级的贪心,300行的宽搜,A*,STL,诸多的剪枝技巧,统计,查找,treap,对DP状态的优化,带集合的DP,平面图,计算几何,数论......要学的东西很多。但我相信只要努力你们肯定会取得不错的成绩。和别人比赛,其实是和自己比赛,考场上完全是实力的体现,会就是会,不会就是做不出来。训练时间每个人情况不一样,长短不一,但重在看个人悟性,水平达到一定程度之后会发现有质的变化,理解算法简直是小菜。
这里强调的还是个思维能力的问题,不是为了做题而做题,做题其实是为了训练自己的思维能力和编程能力,从训练中能得到的最大的收获就是提升了思维,套用比较流行的一个词就是“脑力”。这也是为什么说进省队是个标志,进了省队说明你前期有了一定的积累,和那里的一些高手一接触自然自己的思路就大大开阔了,对于算法会有一个更深层次的理解。就算只参加了省队的选拔赛,对自己的帮助也是很大的。用gush的话说,没进过省队就等于没见过世面。
那大家一定达不到那些现今强人的水平吗?当然不是。强人不是天生就强的,也是从菜鸟做起的,成功地原因只有一个--勤奋。他们的思维能力或者脑力不是天生就这样的。但随便提现今的一个牛人,题量都是上千。他们默默地积累和严谨的态度才取得了现在的成绩。有人说上千题,太恐怖了啊,我做一个题都得花几小时,有些想几天还做不出。一开始自然是这样,知识点众多,考查范围广大,对这些现成的知识要慢慢消化,每个知识点都掌握后,做只考这些知识点的题自然就快了。积累到一定程度后就会发现做题的乐趣,以前很崇拜那些说“今天上课太累了,做几道题休息一下”的人,不知不觉,做题对我来说也成了最大的乐趣。有些题只考查单一的知识点,有些题把几个知识点结合起来考查。比如先用平面图里面的几个知识点,然后凸包求一下,然后DP一下,或者线性方程组解一下再搞个匹配等等,这些题看上去很复杂,但若这些知识点都不折不扣地掌握的话,做这些题自然就像切菜了。题目也是人出的,如果只看现成的这些知识点的话,出题者的思维也是有限的。
参加这个比赛对编程能力的提高也是大有好处的,十分钟上百行无错代码,快速实现逻辑较复杂的算法,debug技巧......而且对语言的理解也能上好几个台阶。我们还没有迎来下一次的编程技术革命,编程仍旧是有局限的,它强迫我们像计算机一样思考,而不是令计算机像我们的大脑一样思考,这是我们需要花巨大的努力去克服的。很多人对我说的这句话可能不太理解,至少感受不深。如果Debug的时间超过写程序时间的1/2,那就是失败的。一切都要慢慢训练,持之以恒之后,拥有良好的编程习惯和风格应该是每个人所追求的。编程的境界永无止境!
以前人们常说看书可以升级大脑,对于计算机及其相关专业的同学来说,参加acm比赛是最好的升级大脑的方法,思维能力的提升可以让我们受益无穷,而编程的能力和技巧则会因为编写大量的代码而大幅提高。或许今后再也没有这样一个机会能让你计算机水平飞速增长。对算法和数据结构理解深入后研究计算机专业的其他课程有如“会当凌绝顶,一览众山小”。所以低年级的同学全身心的投入进来是绝对有好处的。有一年多的积累就能小有成绩了。只要坚持下来,踏踏实实,努力提升自身水平,一定可以实现自己的目标!
做acm看似是枯燥的,但一旦入了门,就会发现其中有无穷的乐趣,即使训练了不参加比赛,对自己也是一个很好的提高。
have fun everybody :)