数学建模社区-数学中国
标题:
最负盛名的程序设计竞赛你都知道吗?
[打印本页]
作者:
尛鳳ル
时间:
2013-7-15 15:26
标题:
最负盛名的程序设计竞赛你都知道吗?
程序设计竞赛有着各种各样的形式,在此,我们来介绍其中最负盛名的几个。
- U; t! j6 |$ x$ v2 s% @2 d! M
! A$ w+ n& ` v5 ~
世界规模的大赛——Google Code Jam(GCJ)
, `# o" J# |, g" ^6 t
7 `7 [; ?, W+ V. k* X0 z6 u0 ?% e
它是Google公司几乎每年都会举办的世界规模的程序设计竞赛,参赛者要在2~3小时内解决大约4道题。一旦从在线(Online)进行的几轮预选中胜出,就能够参加现场(Onsite)总决赛。该赛事的特点是,每道题都备有Small和Large两组输入数据。即便是难度系数较大的问题,只要输入规模足够小,依然可以简单地求解,这一形式深受广大参赛者的喜欢。另外,GCJ并不在服务器上自动执行程序,而是要求将源代码和本地执行的结果一同提交。
$ R3 f4 T6 _7 {& O
0 j* `! V( D( u: E4 a
向高排名看齐!——TopCoder
5 c/ q- x; l- S( d0 z1 F- Q; ?
5 u' O* Q" n3 R& V7 Z. t* y- |
TopCoder公司是一家策划并举办程序设计竞赛的公司,它举办的比赛涉及多个领域。其中之一就是算法(Algorithm)比赛,该赛事大致每周都以SRM(Single Round Match)的形式举办一场,其具有以下特点。
& m4 m7 Z, M0 H
* c S% x" U( o0 c+ @8 L( c. m/ g
(1) 在1小时15分钟的短时间内挑战3道题。
& Y/ d* u; X2 [1 p) L- N, E
6 Z1 m7 W s7 o; }9 S
(2) 提交的结果在比赛结束前是不知道的,整个过程中稍有失误,就会变成0分。
/ H' G0 r- C7 Q7 ]/ G. |, j
! l0 ~8 V, L! ~2 G
(3) 在编码阶段(coding phase)结束后,还有一个挑战阶段(challege phase)。该阶段可以查找别人代码中的漏洞。如果能够提供一组输入数据,使别人的程序返回错误的结果,就能得到额外的分数。
5 b' M6 r' J3 l* H; X
* h# k* |5 h8 Z4 c
其中第3条是该赛事独一无二的特点 ,也是阅读别人代码的好机会。TopCoder还有一个深受大家喜欢的等级分系统(rating system),它会依据SRM的结果给参赛选手排名。另外,TopCoder还会举办一年一度的TCO(TopCoder Open)公开赛。一旦从在线进行的几轮预选中胜出,就能够参加在拉斯维加斯 举办的总决赛。
. A6 T0 R" r3 T N
; j2 Z6 p) d) o# ?9 d6 E
历史最悠久的竞赛——ACM-ICPC
$ k: g: ?. i1 M
! v& ]" H& |: E, w! K
ACM-ICPC是由美国计算机协会(ACM)主办的、面向大学生的竞赛,也是历史最悠久的程序设计竞赛。这是一个三人一队的团队比赛,选手要在5个小时内解决大约10道题。因为比赛中三名选手共用一台电脑,题量又比其他赛事多,并且多是一些实现复杂的问题,所以团队配合显得异常重要。想要从日本参加该项赛事,首先要参加在线进行的国内预选赛,胜出后才能参加亚洲区域赛,取得前几名的好成绩后才能够参加世界总决赛。
6 w: o. c/ o2 C1 J' d$ j% `
5 h9 G; z% H) D, k7 \4 b
讲到ACM-ICPC,不得不提到我们的《挑战程序设计竞赛》(第2版)译者,这颗闪耀在编程竞赛中的明星巫泽俊,就在2011年的5月30下午2时,他获得了第35届ACM国际大学生程序设计竞赛全球总决赛冠军,媒体称他为“世界最聪明的人”。(见下图)
6 O; P- e( W; M: U9 c
( D: _* _# B9 Z" l3 U) V2 X
5 h0 V" ^& x: g8 k t
7 U2 g* ?/ \' _
% J8 M9 [5 r" ^
0 T0 v8 d1 }! Q; v8 y
巫泽俊平时训练的实验室
8 `, {1 ?5 b ^, y7 A
0 a/ O- T' l q& `' Q) C( D
- `5 ?3 n. w' `5 a M
# v$ z- b" d( L5 Q7 M4 W; \. B
巫泽俊
' |. C) T) I t; N0 |6 Y
4 n5 F- P1 Q1 t7 i
面向中学生的信息学奥林匹克竞赛——JOI-IOI
6 N( p/ X0 w) b) Z* ?8 V
5 }1 ]; _5 \0 X$ F; V/ l! U5 c9 J# d# Z" ~
信息学奥林匹克竞赛是学科奥林匹克竞赛的一种,是以初中生和高中生为参赛对象的程序设计竞赛。在日本,首先要参加日本信息学奥林匹克竞赛,取得优异成绩后,才能作为日本国家队选手参加国际信息学奥林匹克竞赛。 其他比赛都需要尽可能快地解决尽可能多的问题,而信息学奥林匹克竞赛只要在规定时间内求解问题即可,成绩与所用时间无关,但是它相对其他比赛而言,求解每道题所花的时间要长得多。虽然是面向中学生的比赛,每年所出问题的难度却是非常高的。
: z1 {2 {$ K4 l( N6 ~+ U
: G8 r D8 B% y' p0 ~" O
通过网络自动评测——Online Judge(OJ)
2 _% N8 V7 L9 [, W# m+ Q
4 \! S; n1 k8 L$ [; W
在互联网上,有一些被称为Online Judge的系统,它们能够自动评测以往程序设计竞赛中的题目。利用该系统就可以练习了。另外,其中一些Online Judge也会定期举办自己的比赛,不妨去参加一下。在此列举几个有名的Online Judge。
: m F. n# E5 m: `
( `( Y9 O# v8 E5 l# q
PKU Online Judge (POJ)—— 题库中有大量的题目。
& k8 t/ {* q5 @1 B6 r/ j
会津大学Online Judge(AOJ)—— 还包含日语题。
2 k0 J7 @, K, u3 H3 m3 U2 A
Sphere Online Judge(SPOJ)—— 允许使用各种各样的编程语言。
C9 D& b+ z9 z- D& G. \4 P, ]
SGU Online Contester—— 具有模拟参加历史比赛的虚拟赛功能。
& J6 ^( k+ I5 }6 P4 C" n9 b* t. o; H
UVa Online Judge—— 老字号Online Judge,经常举办比赛。
/ p( `) g0 U' E7 A, x! P
Codecorces—— 与TopCoder一样定期举办比赛,又同其他网站一样不断维护历届题库。
4 R: G+ |1 M% I* q
关于本书
+ p8 A2 H7 L+ T
0 d1 I/ ^6 u6 g
* v9 D6 e6 M m4 o! L$ u
) C8 v- N% T2 n
《挑战程序设计竞赛(第2版)》分为准备篇、初级篇、中级篇与高级篇4章。作者结合自己丰富的参赛经验,对严格筛选的110 多道各类试题进行了由易及难的细致讲解,每章后附有习题。 通过本书不仅可以学到算法,更能学到其设计和运用的思想。
5 @# q7 A& Z" n5 j: _3 d7 s
. D. q) ~ Q% I: W" c- a9 c/ \' ^
只要是具有编程基础知识的读者,均适合阅读本书。书中的源代码均用C++实现,不过只用到了其基本功能,所以即便读者不熟悉C++也不影响阅读。
. K4 N, d( X6 _! }0 k8 ~+ q
" N: o* q! D( _7 c
本书的第一版被台湾和韩国引进,获得了一致的好评,让我们看看其他两版的封面风格:)
6 W ?4 Y0 T5 `
8 O1 G- _( a: c- C) j b
! Y2 A* ?; u8 {# J, U
O' A3 m. k. o# ?/ t; N
作者:
雨季、落花
时间:
2013-7-18 10:17
最富盛名的程序设计竞赛!
作者:
Harry_
时间:
2013-7-19 21:10
还真不知道
作者:
joycezhou
时间:
2013-7-23 14:53
不是那个浙大的女生被称为“世界最聪明的人”
欢迎光临 数学建模社区-数学中国 (http://www.madio.net/)
Powered by Discuz! X2.5