| 
在线时间2 小时最后登录2013-7-16注册时间2013-7-15听众数0收听数0能力0 分体力7 点威望0 点阅读权限20积分5相册0日志0记录0帖子3主题2精华0分享0好友11
 
 升级    0% 该用户从未签到 自我介绍爱数学,爱编程
  | 
zan| 程序设计竞赛有着各种各样的形式,在此,我们来介绍其中最负盛名的几个。) x) }) _6 }6 ]% L1 j ; N* K3 u+ K! Z" s6 f
 世界规模的大赛——Google Code Jam(GCJ)
 , d* Q! L0 f4 O* _8 K) Z9 f; I6 I  X3 g: ^" e% Q! s* ]& F4 `
 它是Google公司几乎每年都会举办的世界规模的程序设计竞赛,参赛者要在2~3小时内解决大约4道题。一旦从在线(Online)进行的几轮预选中胜出,就能够参加现场(Onsite)总决赛。该赛事的特点是,每道题都备有Small和Large两组输入数据。即便是难度系数较大的问题,只要输入规模足够小,依然可以简单地求解,这一形式深受广大参赛者的喜欢。另外,GCJ并不在服务器上自动执行程序,而是要求将源代码和本地执行的结果一同提交。3 M, |( {" J* ?. I
 2 j% B/ R3 ~' L# L/ R
 向高排名看齐!——TopCoder
 + n, t" z3 D- [$ _9 S: h" Q$ L7 r+ v& N& J' {% V
 TopCoder公司是一家策划并举办程序设计竞赛的公司,它举办的比赛涉及多个领域。其中之一就是算法(Algorithm)比赛,该赛事大致每周都以SRM(Single Round Match)的形式举办一场,其具有以下特点。
 # Q/ s' E  ^7 J$ S3 F; a$ S0 N4 }+ o2 S
 (1) 在1小时15分钟的短时间内挑战3道题。
 9 L* w# c- ]2 n7 b* T; n) E$ d: o$ ~/ f+ x$ J8 s/ r
 (2) 提交的结果在比赛结束前是不知道的,整个过程中稍有失误,就会变成0分。
 8 c; j, W+ h; W+ w! X6 e8 r/ [
 0 X% X0 ^; c$ E(3) 在编码阶段(coding phase)结束后,还有一个挑战阶段(challege phase)。该阶段可以查找别人代码中的漏洞。如果能够提供一组输入数据,使别人的程序返回错误的结果,就能得到额外的分数。  w  n# c$ z9 w* G: x6 `; w* o
 
 ; i$ K- ~7 R0 z% d4 ]# s& F2 x其中第3条是该赛事独一无二的特点 ,也是阅读别人代码的好机会。TopCoder还有一个深受大家喜欢的等级分系统(rating system),它会依据SRM的结果给参赛选手排名。另外,TopCoder还会举办一年一度的TCO(TopCoder Open)公开赛。一旦从在线进行的几轮预选中胜出,就能够参加在拉斯维加斯 举办的总决赛。7 B( n; A8 G# c6 r  @1 S
 
 ) S7 k$ A! b" b# I3 }# s9 x$ J历史最悠久的竞赛——ACM-ICPC+ A  u9 ~) w& L, l# i! t$ D: p7 R
 # u, ~4 q! l! Q' }. U
 ACM-ICPC是由美国计算机协会(ACM)主办的、面向大学生的竞赛,也是历史最悠久的程序设计竞赛。这是一个三人一队的团队比赛,选手要在5个小时内解决大约10道题。因为比赛中三名选手共用一台电脑,题量又比其他赛事多,并且多是一些实现复杂的问题,所以团队配合显得异常重要。想要从日本参加该项赛事,首先要参加在线进行的国内预选赛,胜出后才能参加亚洲区域赛,取得前几名的好成绩后才能够参加世界总决赛。
 ( `& X" ?% G& l. ~
 2 m, \$ ^; x" V讲到ACM-ICPC,不得不提到我们的《挑战程序设计竞赛》(第2版)译者,这颗闪耀在编程竞赛中的明星巫泽俊,就在2011年的5月30下午2时,他获得了第35届ACM国际大学生程序设计竞赛全球总决赛冠军,媒体称他为“世界最聪明的人”。(见下图)& v8 D2 \" i! o% S5 e7 ~# J
 & \. d! [! H# @% ]6 D, B
 
 ![]() % }* Z4 n. Q! \! ?7 W) P2 {  }- @
 6 ^% W$ K- d3 m, M: X
 ![]() ; b/ u; y$ \; a2 ~
 4 z. g7 X6 H1 [巫泽俊平时训练的实验室2 o* T5 r% p# F' v$ J7 y
 ( N! A( k" \. w% m+ R: Z" ^
 
 ![]() s  ]: e9 d* j) g3 z
 - ?$ ?+ C0 u5 m2 L1 r巫泽俊. B2 p* P. {% b! h9 S' L% W
 0 H6 M/ u2 s6 K- S
 面向中学生的信息学奥林匹克竞赛——JOI-IOI
 / T( q( B# w! G7 `! x, T4 K( s1 b! i: `# Y* k8 Z
 信息学奥林匹克竞赛是学科奥林匹克竞赛的一种,是以初中生和高中生为参赛对象的程序设计竞赛。在日本,首先要参加日本信息学奥林匹克竞赛,取得优异成绩后,才能作为日本国家队选手参加国际信息学奥林匹克竞赛。 其他比赛都需要尽可能快地解决尽可能多的问题,而信息学奥林匹克竞赛只要在规定时间内求解问题即可,成绩与所用时间无关,但是它相对其他比赛而言,求解每道题所花的时间要长得多。虽然是面向中学生的比赛,每年所出问题的难度却是非常高的。
 5 t) [2 F( _% M! k7 k) r7 I2 F; M3 m1 |& ~$ Z1 t  `
 通过网络自动评测——Online Judge(OJ)" o5 ^/ S1 r& E! ?. g
 & ^* d# \9 Z$ l: X# i# j6 `* B+ N
 在互联网上,有一些被称为Online Judge的系统,它们能够自动评测以往程序设计竞赛中的题目。利用该系统就可以练习了。另外,其中一些Online Judge也会定期举办自己的比赛,不妨去参加一下。在此列举几个有名的Online Judge。
 D: a& Y4 O) w! p9 K* j: H  f( S& V5 f0 X3 [9 d- l
 PKU Online Judge (POJ)——  题库中有大量的题目。- ], A! M/ d4 E) V6 [
 会津大学Online Judge(AOJ)—— 还包含日语题。+ o/ c  _5 [$ _- w
 Sphere Online Judge(SPOJ)—— 允许使用各种各样的编程语言。$ X+ C9 V: G; m5 x  c) d
 SGU Online Contester—— 具有模拟参加历史比赛的虚拟赛功能。
 , @6 o/ Z  M3 Q: PUVa Online Judge—— 老字号Online Judge,经常举办比赛。
 ) J# g; M7 |* W1 `& U% @Codecorces——  与TopCoder一样定期举办比赛,又同其他网站一样不断维护历届题库。( p! |% ?' }1 m  X/ n( Z! D
 关于本书
 8 O5 R6 m+ H( m1 C, Z0 }: m* C
 8 \9 O# f  i+ P$ G4 X% R! a
 ![]() 0 m# A" A, J" U4 k3 t2 q
 + U  d! Q, s& c/ n# J《挑战程序设计竞赛(第2版)》分为准备篇、初级篇、中级篇与高级篇4章。作者结合自己丰富的参赛经验,对严格筛选的110 多道各类试题进行了由易及难的细致讲解,每章后附有习题。 通过本书不仅可以学到算法,更能学到其设计和运用的思想。
 / A- G" u; a/ G: M* V
 # U6 N$ K# A  ]9 A只要是具有编程基础知识的读者,均适合阅读本书。书中的源代码均用C++实现,不过只用到了其基本功能,所以即便读者不熟悉C++也不影响阅读。
 6 b" C& K  s" ?$ o% ~2 Y5 u4 Y0 t( I, u: r: ^
 本书的第一版被台湾和韩国引进,获得了一致的好评,让我们看看其他两版的封面风格:)
 % f" N9 C" T5 u# f3 @- ^  N
 1 i0 F. ~9 Z! q6 e& R
 ![]() M( E2 e, a3 C, m 2 z4 C% W/ c6 K3 z4 P/ I2 ?7 D5 [
 
 | 
 |