/ I, d9 f1 T+ z* n5 y7 U(2) 提交的结果在比赛结束前是不知道的,整个过程中稍有失误,就会变成0分。 & f: B5 X2 J- d5 a6 P! D1 W 3 g4 g0 G) N, U4 ?(3) 在编码阶段(coding phase)结束后,还有一个挑战阶段(challege phase)。该阶段可以查找别人代码中的漏洞。如果能够提供一组输入数据,使别人的程序返回错误的结果,就能得到额外的分数。 ( T& U4 {& [/ G# h9 W0 N' x5 D# v' d5 V3 d! T
其中第3条是该赛事独一无二的特点 ,也是阅读别人代码的好机会。TopCoder还有一个深受大家喜欢的等级分系统(rating system),它会依据SRM的结果给参赛选手排名。另外,TopCoder还会举办一年一度的TCO(TopCoder Open)公开赛。一旦从在线进行的几轮预选中胜出,就能够参加在拉斯维加斯 举办的总决赛。- m {( g- C0 |; i* F# {
! S0 U4 Q4 c Y2 o2 N5 O# S历史最悠久的竞赛——ACM-ICPC , \3 n' g3 e2 z7 z/ p; U' U/ Y0 P6 F, u6 W5 P1 {5 H+ {
ACM-ICPC是由美国计算机协会(ACM)主办的、面向大学生的竞赛,也是历史最悠久的程序设计竞赛。这是一个三人一队的团队比赛,选手要在5个小时内解决大约10道题。因为比赛中三名选手共用一台电脑,题量又比其他赛事多,并且多是一些实现复杂的问题,所以团队配合显得异常重要。想要从日本参加该项赛事,首先要参加在线进行的国内预选赛,胜出后才能参加亚洲区域赛,取得前几名的好成绩后才能够参加世界总决赛。 ; c: z; Y' q9 |* G, J6 D2 ^ x8 M, U j1 k- }3 N
讲到ACM-ICPC,不得不提到我们的《挑战程序设计竞赛》(第2版)译者,这颗闪耀在编程竞赛中的明星巫泽俊,就在2011年的5月30下午2时,他获得了第35届ACM国际大学生程序设计竞赛全球总决赛冠军,媒体称他为“世界最聪明的人”。(见下图) ) M) q; t4 ^$ B2 I( k ?- R4 ~ 7 ]$ @9 @. R' C5 L6 T2 E' m8 X |7 s, f) @' F! f) ^% ~( o
5 [6 L' O& A, {$ z g' ^ ' f6 e0 i1 [& p" B) N; }; n 6 E$ H1 c6 b1 P/ r巫泽俊平时训练的实验室 . v5 u# o* W/ P' u d + C' p- f0 e' n# B7 j. M4 n& ?/ j \5 l4 o
& L: Y2 o; g/ Y) ]
巫泽俊1 ]; c9 X! @' X; ~+ l
6 ?: w0 L/ ^6 D, p' z面向中学生的信息学奥林匹克竞赛——JOI-IOI0 {- h+ ?1 X1 {' f9 b. V4 ]: k
6 F* l) O6 x5 B8 ]& N8 i: g
信息学奥林匹克竞赛是学科奥林匹克竞赛的一种,是以初中生和高中生为参赛对象的程序设计竞赛。在日本,首先要参加日本信息学奥林匹克竞赛,取得优异成绩后,才能作为日本国家队选手参加国际信息学奥林匹克竞赛。 其他比赛都需要尽可能快地解决尽可能多的问题,而信息学奥林匹克竞赛只要在规定时间内求解问题即可,成绩与所用时间无关,但是它相对其他比赛而言,求解每道题所花的时间要长得多。虽然是面向中学生的比赛,每年所出问题的难度却是非常高的。 % e W, _# a, I) v % ]! ?1 E$ A% a1 r3 v通过网络自动评测——Online Judge(OJ)" J# x$ }* I! R' n4 H
9 J- P& A8 h+ |" e) w1 N- t
在互联网上,有一些被称为Online Judge的系统,它们能够自动评测以往程序设计竞赛中的题目。利用该系统就可以练习了。另外,其中一些Online Judge也会定期举办自己的比赛,不妨去参加一下。在此列举几个有名的Online Judge。5 Y: s8 ]$ J" v7 a S/ J1 N
# [7 B' B, V: B" Q4 e$ h4 J: `4 k6 s
PKU Online Judge (POJ)—— 题库中有大量的题目。; v I/ T4 q( {! d$ h
会津大学Online Judge(AOJ)—— 还包含日语题。" { `9 q7 x5 `+ ?! Y
Sphere Online Judge(SPOJ)—— 允许使用各种各样的编程语言。 / p+ K, `2 v: ]SGU Online Contester—— 具有模拟参加历史比赛的虚拟赛功能。3 V- C( h* ~& u
UVa Online Judge—— 老字号Online Judge,经常举办比赛。# J3 ?! a5 A9 m$ q$ E* A! S5 G9 S" H
Codecorces—— 与TopCoder一样定期举办比赛,又同其他网站一样不断维护历届题库。 . d: _2 N# Z8 V, E8 j! i关于本书/ T" H9 h3 b% u, i$ i& m; f
4 {5 ^ A! d& P/ h! V! { ( y) }1 p2 Z( h% a0 x, N( {
' U% i2 O! R1 r0 `5 a8 A! C- B9 R《挑战程序设计竞赛(第2版)》分为准备篇、初级篇、中级篇与高级篇4章。作者结合自己丰富的参赛经验,对严格筛选的110 多道各类试题进行了由易及难的细致讲解,每章后附有习题。 通过本书不仅可以学到算法,更能学到其设计和运用的思想。- S8 [" ^( m0 L2 \( c. z
8 h( E6 F4 U2 \! ^/ K, X
只要是具有编程基础知识的读者,均适合阅读本书。书中的源代码均用C++实现,不过只用到了其基本功能,所以即便读者不熟悉C++也不影响阅读。: _7 T/ P5 b8 x {4 Z