| 
在线时间2 小时最后登录2013-7-16注册时间2013-7-15听众数0收听数0能力0 分体力7 点威望0 点阅读权限20积分5相册0日志0记录0帖子3主题2精华0分享0好友11
 
 升级    0% 该用户从未签到 自我介绍爱数学,爱编程
  | 
zan| 程序设计竞赛有着各种各样的形式,在此,我们来介绍其中最负盛名的几个。 * Z- a: p! I( Y$ x. t
 ; F+ @' |. [" W0 V* g. K- h世界规模的大赛——Google Code Jam(GCJ)
 : T( O: }; c  E1 E7 s
 / }4 w, M6 p0 {9 J* `; t它是Google公司几乎每年都会举办的世界规模的程序设计竞赛,参赛者要在2~3小时内解决大约4道题。一旦从在线(Online)进行的几轮预选中胜出,就能够参加现场(Onsite)总决赛。该赛事的特点是,每道题都备有Small和Large两组输入数据。即便是难度系数较大的问题,只要输入规模足够小,依然可以简单地求解,这一形式深受广大参赛者的喜欢。另外,GCJ并不在服务器上自动执行程序,而是要求将源代码和本地执行的结果一同提交。0 z3 N9 O9 s6 Q7 P  Q9 f3 `* N" p
 
 9 [) x2 |1 x. x5 }8 p向高排名看齐!——TopCoder
 - T( Q2 U. ~5 X/ a+ D) K+ t" b+ O1 b6 O8 }' h
 TopCoder公司是一家策划并举办程序设计竞赛的公司,它举办的比赛涉及多个领域。其中之一就是算法(Algorithm)比赛,该赛事大致每周都以SRM(Single Round Match)的形式举办一场,其具有以下特点。% E, l' [6 r" r2 Z
 
 " J2 o6 t0 [6 F(1) 在1小时15分钟的短时间内挑战3道题。1 B9 B6 D  k$ a% e; o& n, X% h
 
 1 ~/ |( j4 K. ~* d(2) 提交的结果在比赛结束前是不知道的,整个过程中稍有失误,就会变成0分。9 W/ n+ p# W2 [6 L/ p4 l& p
 
 ! [; B3 @( v' e) e(3) 在编码阶段(coding phase)结束后,还有一个挑战阶段(challege phase)。该阶段可以查找别人代码中的漏洞。如果能够提供一组输入数据,使别人的程序返回错误的结果,就能得到额外的分数。4 x8 G& c* q4 F+ q5 G! U( c+ q
 
 - J' f  I+ m' `: Y其中第3条是该赛事独一无二的特点 ,也是阅读别人代码的好机会。TopCoder还有一个深受大家喜欢的等级分系统(rating system),它会依据SRM的结果给参赛选手排名。另外,TopCoder还会举办一年一度的TCO(TopCoder Open)公开赛。一旦从在线进行的几轮预选中胜出,就能够参加在拉斯维加斯 举办的总决赛。0 v$ h* X0 T/ w3 X* W! s$ j
 5 H5 v% g* m9 Y5 Y5 q: ]5 a1 J8 l# F- q
 历史最悠久的竞赛——ACM-ICPC& l! G1 {, ^8 b4 ?& e
 6 m5 {2 O. R& D/ M( v) _& s
 ACM-ICPC是由美国计算机协会(ACM)主办的、面向大学生的竞赛,也是历史最悠久的程序设计竞赛。这是一个三人一队的团队比赛,选手要在5个小时内解决大约10道题。因为比赛中三名选手共用一台电脑,题量又比其他赛事多,并且多是一些实现复杂的问题,所以团队配合显得异常重要。想要从日本参加该项赛事,首先要参加在线进行的国内预选赛,胜出后才能参加亚洲区域赛,取得前几名的好成绩后才能够参加世界总决赛。
 & `* p$ [; d" F1 L1 ~+ O5 j* Z) F; E6 u6 K4 t3 N! k. \
 讲到ACM-ICPC,不得不提到我们的《挑战程序设计竞赛》(第2版)译者,这颗闪耀在编程竞赛中的明星巫泽俊,就在2011年的5月30下午2时,他获得了第35届ACM国际大学生程序设计竞赛全球总决赛冠军,媒体称他为“世界最聪明的人”。(见下图)! H3 }0 R, W5 Z1 \4 n- x% ?4 B
 
 b# d* K, B! V# P  U
 ![]() " R3 A! l6 o& f. L+ z5 h& Q% b, E' O$ S; Y
 
 ![]() ; n* O0 \# ~: m8 |9 c5 w" Z' L! e3 G0 p1 C' s( U
 巫泽俊平时训练的实验室4 f! g2 Z( _- |( R: i
 5 s/ W2 e7 |2 l( x: f' J
 
 ![]() 3 x1 {$ c1 ]7 l! L2 u( y) T4 X+ U8 e# {0 `* s- x
 巫泽俊7 ]0 D2 c5 U) K- l
 
 3 f+ I5 x( J3 S% o- x3 M! c面向中学生的信息学奥林匹克竞赛——JOI-IOI
 : F* P) x0 k  m. d' O' R
 8 _. I+ R4 C) g6 M8 q信息学奥林匹克竞赛是学科奥林匹克竞赛的一种,是以初中生和高中生为参赛对象的程序设计竞赛。在日本,首先要参加日本信息学奥林匹克竞赛,取得优异成绩后,才能作为日本国家队选手参加国际信息学奥林匹克竞赛。 其他比赛都需要尽可能快地解决尽可能多的问题,而信息学奥林匹克竞赛只要在规定时间内求解问题即可,成绩与所用时间无关,但是它相对其他比赛而言,求解每道题所花的时间要长得多。虽然是面向中学生的比赛,每年所出问题的难度却是非常高的。
 : G: Q2 v) X; b# k! b9 D9 p# i* X
 $ ~0 T; q: v7 x5 Y$ P- }通过网络自动评测——Online Judge(OJ)
 7 v" Y" ?# w4 S* t$ T5 j" F0 d$ C" G% R) g# R9 M
 在互联网上,有一些被称为Online Judge的系统,它们能够自动评测以往程序设计竞赛中的题目。利用该系统就可以练习了。另外,其中一些Online Judge也会定期举办自己的比赛,不妨去参加一下。在此列举几个有名的Online Judge。- }8 m% k- I. U, B/ ~4 k
 & n0 Y! D6 b$ o  f8 }4 v2 f
 PKU Online Judge (POJ)——  题库中有大量的题目。
 + F; y+ c6 Q# k& Q% d& h会津大学Online Judge(AOJ)—— 还包含日语题。8 [1 E; l9 F5 U9 A0 ], r1 Q. y
 Sphere Online Judge(SPOJ)—— 允许使用各种各样的编程语言。
 1 E/ ]+ \" e$ f9 L1 ~! q5 bSGU Online Contester—— 具有模拟参加历史比赛的虚拟赛功能。
 2 x: ~( G! O/ w7 P- ~, l9 H# pUVa Online Judge—— 老字号Online Judge,经常举办比赛。3 P) t1 M8 X7 K0 ?2 c" p, f
 Codecorces——  与TopCoder一样定期举办比赛,又同其他网站一样不断维护历届题库。
 . m4 h5 }+ D6 r关于本书
 ' R9 F8 @: t5 n! z5 A3 L; S' f8 g5 u- J0 B( E9 k
 
 ![]() - P; U: O1 ^6 X; p  K  T
 3 \3 j: F; r9 x9 F( |- y4 q《挑战程序设计竞赛(第2版)》分为准备篇、初级篇、中级篇与高级篇4章。作者结合自己丰富的参赛经验,对严格筛选的110 多道各类试题进行了由易及难的细致讲解,每章后附有习题。 通过本书不仅可以学到算法,更能学到其设计和运用的思想。
 $ ~: C" n# p& g+ Z, a. M' I* z, E8 f/ X0 ?
 只要是具有编程基础知识的读者,均适合阅读本书。书中的源代码均用C++实现,不过只用到了其基本功能,所以即便读者不熟悉C++也不影响阅读。
 $ b  T! \" t5 d% F( J/ t+ K0 ?& T0 i6 K( t; x/ E) ^- P( _
 本书的第一版被台湾和韩国引进,获得了一致的好评,让我们看看其他两版的封面风格:)7 c8 @& G4 F. S3 {) b) S7 m
 / W# W/ I! L9 h4 b- S- ^; A
 
 ![]() 8 D% @0 J# E" z9 @; O7 j* ~% w: W) L4 n: u/ N3 m: Y3 [2 W
 
 | 
 |