- 在线时间
- 2 小时
- 最后登录
- 2013-7-16
- 注册时间
- 2013-7-15
- 听众数
- 0
- 收听数
- 0
- 能力
- 0 分
- 体力
- 7 点
- 威望
- 0 点
- 阅读权限
- 20
- 积分
- 5
- 相册
- 0
- 日志
- 0
- 记录
- 0
- 帖子
- 3
- 主题
- 2
- 精华
- 0
- 分享
- 0
- 好友
- 11
升级   0% 该用户从未签到 - 自我介绍
- 爱数学,爱编程
 |
程序设计竞赛有着各种各样的形式,在此,我们来介绍其中最负盛名的几个。
( d1 n8 [6 e" n7 E+ `# w m& l% Z I, ~8 t/ H0 N8 h# T) F
世界规模的大赛——Google Code Jam(GCJ)& e- A+ m" l3 `1 `1 w$ B
! N& N/ _) H$ r' @5 d. m2 y它是Google公司几乎每年都会举办的世界规模的程序设计竞赛,参赛者要在2~3小时内解决大约4道题。一旦从在线(Online)进行的几轮预选中胜出,就能够参加现场(Onsite)总决赛。该赛事的特点是,每道题都备有Small和Large两组输入数据。即便是难度系数较大的问题,只要输入规模足够小,依然可以简单地求解,这一形式深受广大参赛者的喜欢。另外,GCJ并不在服务器上自动执行程序,而是要求将源代码和本地执行的结果一同提交。
( Y( G" ~9 q* H# p/ V( p5 {! Y" J, S
向高排名看齐!——TopCoder8 S% c6 e. h, z. m9 Z O, k7 ~
; r7 I) I9 V! L$ rTopCoder公司是一家策划并举办程序设计竞赛的公司,它举办的比赛涉及多个领域。其中之一就是算法(Algorithm)比赛,该赛事大致每周都以SRM(Single Round Match)的形式举办一场,其具有以下特点。$ ~) A+ Y5 b) |, d2 N
$ u0 ^' N* e" S8 @' X& L2 x
(1) 在1小时15分钟的短时间内挑战3道题。, s" e) S2 C- L. U& y6 P: ]
' v% u; p" q& ?' ]
(2) 提交的结果在比赛结束前是不知道的,整个过程中稍有失误,就会变成0分。: x5 H& Y2 t9 c6 u3 G6 v& f, O+ `
: Q" R1 l& ~3 `0 @: I8 Y8 j(3) 在编码阶段(coding phase)结束后,还有一个挑战阶段(challege phase)。该阶段可以查找别人代码中的漏洞。如果能够提供一组输入数据,使别人的程序返回错误的结果,就能得到额外的分数。- j6 h) D2 [' L/ a& H4 ^. D
/ `' ^; f: N6 U: N; H/ g3 ~其中第3条是该赛事独一无二的特点 ,也是阅读别人代码的好机会。TopCoder还有一个深受大家喜欢的等级分系统(rating system),它会依据SRM的结果给参赛选手排名。另外,TopCoder还会举办一年一度的TCO(TopCoder Open)公开赛。一旦从在线进行的几轮预选中胜出,就能够参加在拉斯维加斯 举办的总决赛。
, ~$ l$ L$ z. ]) @
3 `. ], T# j" j' \9 M9 x2 [& Y历史最悠久的竞赛——ACM-ICPC
( H; c. } @/ ?! |& p) Q3 k' r5 P1 P" M- V7 i
ACM-ICPC是由美国计算机协会(ACM)主办的、面向大学生的竞赛,也是历史最悠久的程序设计竞赛。这是一个三人一队的团队比赛,选手要在5个小时内解决大约10道题。因为比赛中三名选手共用一台电脑,题量又比其他赛事多,并且多是一些实现复杂的问题,所以团队配合显得异常重要。想要从日本参加该项赛事,首先要参加在线进行的国内预选赛,胜出后才能参加亚洲区域赛,取得前几名的好成绩后才能够参加世界总决赛。4 t& t* G! V& f( z# ]3 g8 R3 O
( C# J' x7 T( G
讲到ACM-ICPC,不得不提到我们的《挑战程序设计竞赛》(第2版)译者,这颗闪耀在编程竞赛中的明星巫泽俊,就在2011年的5月30下午2时,他获得了第35届ACM国际大学生程序设计竞赛全球总决赛冠军,媒体称他为“世界最聪明的人”。(见下图)6 x! s% s0 K! w: [
+ L, U7 q8 n. I0 o7 `
5 W$ g b; X( h1 @& S0 w" l
( U- T2 r4 K6 z9 V+ ?
' ?8 c/ B) E, \# q* p+ A/ L) {
8 R* N Y6 u9 @+ V( j$ X
巫泽俊平时训练的实验室
; s& c& V' H4 e% W
( V: z2 w7 S* z3 x; E t! U0 l 7 ~( n& }! r; i- R( \
' n( G, i7 z# t! H巫泽俊7 z8 t! W9 i' ]! N. s
" U9 u- M# R( |
面向中学生的信息学奥林匹克竞赛——JOI-IOI
+ r' ]+ {( f+ g2 K6 T& g7 B
& v& F$ f& a" Q; z! X# U0 X7 ?信息学奥林匹克竞赛是学科奥林匹克竞赛的一种,是以初中生和高中生为参赛对象的程序设计竞赛。在日本,首先要参加日本信息学奥林匹克竞赛,取得优异成绩后,才能作为日本国家队选手参加国际信息学奥林匹克竞赛。 其他比赛都需要尽可能快地解决尽可能多的问题,而信息学奥林匹克竞赛只要在规定时间内求解问题即可,成绩与所用时间无关,但是它相对其他比赛而言,求解每道题所花的时间要长得多。虽然是面向中学生的比赛,每年所出问题的难度却是非常高的。
/ t. k2 q, A4 [8 z, r" n& w5 I2 V3 c% M
3 R! L* C) j, U/ l0 G0 P# k5 K% k通过网络自动评测——Online Judge(OJ)" J9 x4 n$ I1 {9 ] z( N) t
0 S4 T6 [- ]* r5 @在互联网上,有一些被称为Online Judge的系统,它们能够自动评测以往程序设计竞赛中的题目。利用该系统就可以练习了。另外,其中一些Online Judge也会定期举办自己的比赛,不妨去参加一下。在此列举几个有名的Online Judge。
% A) d7 L0 u* \8 e
# z2 q# @, x0 ?* P. a! VPKU Online Judge (POJ)—— 题库中有大量的题目。
, {9 b" u! c: o; E4 X& l会津大学Online Judge(AOJ)—— 还包含日语题。: E1 f" y9 o+ \% I
Sphere Online Judge(SPOJ)—— 允许使用各种各样的编程语言。
E( K, G* i ?. g3 g( qSGU Online Contester—— 具有模拟参加历史比赛的虚拟赛功能。
- {0 |4 o/ w I: ?8 YUVa Online Judge—— 老字号Online Judge,经常举办比赛。
2 Z% a3 b4 h% Y; u$ ZCodecorces—— 与TopCoder一样定期举办比赛,又同其他网站一样不断维护历届题库。) O0 J: W: | s4 D5 H+ T
关于本书
: M- P3 \" Z6 I& ^5 E7 G
, j/ y5 Q( G& {& I3 r![]()
4 e' R+ d9 P8 Y; f( \ N) U0 w! ]& K7 ]. ~) c8 g5 A' a1 V
《挑战程序设计竞赛(第2版)》分为准备篇、初级篇、中级篇与高级篇4章。作者结合自己丰富的参赛经验,对严格筛选的110 多道各类试题进行了由易及难的细致讲解,每章后附有习题。 通过本书不仅可以学到算法,更能学到其设计和运用的思想。# S# A! i) ]3 B
: B7 A" }+ a; q5 X
只要是具有编程基础知识的读者,均适合阅读本书。书中的源代码均用C++实现,不过只用到了其基本功能,所以即便读者不熟悉C++也不影响阅读。4 J% Z2 h- [" y# q s2 O1 k" U1 c; q
6 L6 N0 I1 V1 u本书的第一版被台湾和韩国引进,获得了一致的好评,让我们看看其他两版的封面风格:)
g6 \1 f8 m/ Y5 ?: }5 D4 E+ b
" z) q0 H( i% ^1 e; r8 d. M1 a W z( x1 D/ t0 Z3 X: y
3 o5 M" ]4 u( w3 H. p
|
zan
|