- 在线时间
- 2 小时
- 最后登录
- 2013-7-16
- 注册时间
- 2013-7-15
- 听众数
- 0
- 收听数
- 0
- 能力
- 0 分
- 体力
- 7 点
- 威望
- 0 点
- 阅读权限
- 20
- 积分
- 5
- 相册
- 0
- 日志
- 0
- 记录
- 0
- 帖子
- 3
- 主题
- 2
- 精华
- 0
- 分享
- 0
- 好友
- 11
升级   0% 该用户从未签到 - 自我介绍
- 爱数学,爱编程
 |
程序设计竞赛有着各种各样的形式,在此,我们来介绍其中最负盛名的几个。
" ]0 B9 V& g7 P5 j
7 j* _5 k: C+ b/ q* q世界规模的大赛——Google Code Jam(GCJ)# E; B& f l4 {$ K* V
9 ^, [ v( L* I, Q
它是Google公司几乎每年都会举办的世界规模的程序设计竞赛,参赛者要在2~3小时内解决大约4道题。一旦从在线(Online)进行的几轮预选中胜出,就能够参加现场(Onsite)总决赛。该赛事的特点是,每道题都备有Small和Large两组输入数据。即便是难度系数较大的问题,只要输入规模足够小,依然可以简单地求解,这一形式深受广大参赛者的喜欢。另外,GCJ并不在服务器上自动执行程序,而是要求将源代码和本地执行的结果一同提交。
e; \% V0 _, p0 X, o T" ^+ z( d9 J+ a- }& T& M
向高排名看齐!——TopCoder
8 \, Q: X: f" T6 B& o
, ^% g# b$ ^: L8 W m2 Z4 B8 }TopCoder公司是一家策划并举办程序设计竞赛的公司,它举办的比赛涉及多个领域。其中之一就是算法(Algorithm)比赛,该赛事大致每周都以SRM(Single Round Match)的形式举办一场,其具有以下特点。8 N; D8 u/ n- R! m1 }4 v
$ A, ^ j9 b6 O8 a- d4 t! N
(1) 在1小时15分钟的短时间内挑战3道题。
" d& R8 e7 p3 K8 d d7 U( B, Z& J: j! r$ Y5 ~) s
(2) 提交的结果在比赛结束前是不知道的,整个过程中稍有失误,就会变成0分。: i. }0 ?' t+ Y% C! C0 k& R
( G. E8 o$ I/ E- H& z3 s; w+ M
(3) 在编码阶段(coding phase)结束后,还有一个挑战阶段(challege phase)。该阶段可以查找别人代码中的漏洞。如果能够提供一组输入数据,使别人的程序返回错误的结果,就能得到额外的分数。
* ?2 s1 B( _/ r w
`# a6 Q0 m" |$ e其中第3条是该赛事独一无二的特点 ,也是阅读别人代码的好机会。TopCoder还有一个深受大家喜欢的等级分系统(rating system),它会依据SRM的结果给参赛选手排名。另外,TopCoder还会举办一年一度的TCO(TopCoder Open)公开赛。一旦从在线进行的几轮预选中胜出,就能够参加在拉斯维加斯 举办的总决赛。( d! x. f6 g$ Q9 O" s* f( K0 A, R! e
1 E+ ~- E% K8 H4 I$ J( M6 _9 |5 a
历史最悠久的竞赛——ACM-ICPC1 L+ |1 Z% S' y- f2 R. m7 ^
: i- w. c$ `# v8 `' R& o1 MACM-ICPC是由美国计算机协会(ACM)主办的、面向大学生的竞赛,也是历史最悠久的程序设计竞赛。这是一个三人一队的团队比赛,选手要在5个小时内解决大约10道题。因为比赛中三名选手共用一台电脑,题量又比其他赛事多,并且多是一些实现复杂的问题,所以团队配合显得异常重要。想要从日本参加该项赛事,首先要参加在线进行的国内预选赛,胜出后才能参加亚洲区域赛,取得前几名的好成绩后才能够参加世界总决赛。, M. m3 Z$ k& r; G
2 z0 q7 ]/ \: K讲到ACM-ICPC,不得不提到我们的《挑战程序设计竞赛》(第2版)译者,这颗闪耀在编程竞赛中的明星巫泽俊,就在2011年的5月30下午2时,他获得了第35届ACM国际大学生程序设计竞赛全球总决赛冠军,媒体称他为“世界最聪明的人”。(见下图)3 g* \! ]& }6 ]4 N% K- A
* W$ w2 O* }2 I! \ 5 W5 ?& K5 Y$ r7 e* C! T8 O% [
: E( S( w; D/ L! f9 y' R$ i6 ? ] ) D: s4 S5 `; @: a5 _1 q' `
3 N1 u( u, ~1 H: |- n' ~. D巫泽俊平时训练的实验室
1 B! O9 R( z7 Y4 ^2 U% Y
! x0 n+ S% C* q8 v, g0 }/ g , D$ c) v* x: l$ y3 i
' L+ u, u8 x/ s* U巫泽俊
" ~3 q7 h$ I3 N, D# F" m5 Z
- ]5 i% }+ k( q2 M' \& R面向中学生的信息学奥林匹克竞赛——JOI-IOI6 w- B/ Y8 h0 _% N
7 \9 F3 n [6 y* V
信息学奥林匹克竞赛是学科奥林匹克竞赛的一种,是以初中生和高中生为参赛对象的程序设计竞赛。在日本,首先要参加日本信息学奥林匹克竞赛,取得优异成绩后,才能作为日本国家队选手参加国际信息学奥林匹克竞赛。 其他比赛都需要尽可能快地解决尽可能多的问题,而信息学奥林匹克竞赛只要在规定时间内求解问题即可,成绩与所用时间无关,但是它相对其他比赛而言,求解每道题所花的时间要长得多。虽然是面向中学生的比赛,每年所出问题的难度却是非常高的。4 p2 S+ Y$ L5 F3 A0 H* Q( m, X
) A1 |, t4 V3 V$ Z通过网络自动评测——Online Judge(OJ)8 \3 B( F/ ~( U* _
% c, o+ x& G1 u. g x6 I; h& Q在互联网上,有一些被称为Online Judge的系统,它们能够自动评测以往程序设计竞赛中的题目。利用该系统就可以练习了。另外,其中一些Online Judge也会定期举办自己的比赛,不妨去参加一下。在此列举几个有名的Online Judge。, t. w7 L6 S. @1 @$ f
0 N1 Z9 _- k1 [) q) ?. N) P
PKU Online Judge (POJ)—— 题库中有大量的题目。
) F' n- H3 U$ ?7 d# V1 q+ p+ Q会津大学Online Judge(AOJ)—— 还包含日语题。# ?6 v( {* A7 h. Q2 N2 u% E
Sphere Online Judge(SPOJ)—— 允许使用各种各样的编程语言。% F8 ?6 M& f% i! U% K! {7 x' p
SGU Online Contester—— 具有模拟参加历史比赛的虚拟赛功能。, W$ x* m! U" T3 o! V# |1 B& M+ D/ @
UVa Online Judge—— 老字号Online Judge,经常举办比赛。
; _& P% F; @7 r' J9 j6 d- M- p$ uCodecorces—— 与TopCoder一样定期举办比赛,又同其他网站一样不断维护历届题库。
5 y$ w f: ?3 d# L/ l$ b* @关于本书
: I4 { c, N: H+ S8 [$ R7 W1 u8 v7 X+ m3 m3 |6 D9 h2 V$ I" c
![]()
, A* i) V% H% Q u# p p" p1 }2 W, O& r
《挑战程序设计竞赛(第2版)》分为准备篇、初级篇、中级篇与高级篇4章。作者结合自己丰富的参赛经验,对严格筛选的110 多道各类试题进行了由易及难的细致讲解,每章后附有习题。 通过本书不仅可以学到算法,更能学到其设计和运用的思想。
4 ~1 P6 V0 V' J& i, w' `6 }* ~; j# F+ p5 [0 s
只要是具有编程基础知识的读者,均适合阅读本书。书中的源代码均用C++实现,不过只用到了其基本功能,所以即便读者不熟悉C++也不影响阅读。8 J' t" N6 I; |2 ~6 F% n1 g) ~9 ~2 I
/ s/ J+ u" _# {
本书的第一版被台湾和韩国引进,获得了一致的好评,让我们看看其他两版的封面风格:)
3 g0 \3 ~2 C Y/ O( c
. {6 s- b( l" u! c![]()
D9 F; `2 V; w7 g) W$ O
+ \' O" f, [: I3 O# r' q |
zan
|