- 在线时间
- 2 小时
- 最后登录
- 2013-7-16
- 注册时间
- 2013-7-15
- 听众数
- 0
- 收听数
- 0
- 能力
- 0 分
- 体力
- 7 点
- 威望
- 0 点
- 阅读权限
- 20
- 积分
- 5
- 相册
- 0
- 日志
- 0
- 记录
- 0
- 帖子
- 3
- 主题
- 2
- 精华
- 0
- 分享
- 0
- 好友
- 11
升级   0% 该用户从未签到 - 自我介绍
- 爱数学,爱编程
 |
程序设计竞赛有着各种各样的形式,在此,我们来介绍其中最负盛名的几个。 H2 }" W0 Z" r- S J! r) ?
+ L' H9 i) t/ i7 b, w世界规模的大赛——Google Code Jam(GCJ)% P4 y) C/ e% u
' b+ y7 d' _3 O. ~* u" x
它是Google公司几乎每年都会举办的世界规模的程序设计竞赛,参赛者要在2~3小时内解决大约4道题。一旦从在线(Online)进行的几轮预选中胜出,就能够参加现场(Onsite)总决赛。该赛事的特点是,每道题都备有Small和Large两组输入数据。即便是难度系数较大的问题,只要输入规模足够小,依然可以简单地求解,这一形式深受广大参赛者的喜欢。另外,GCJ并不在服务器上自动执行程序,而是要求将源代码和本地执行的结果一同提交。. h+ X- O$ f! y* Q) J! ?" q
! Y+ i# W D6 G l, A4 ]9 @) R9 M向高排名看齐!——TopCoder
, k( q! X3 \) T8 X$ f8 q& H, s' W" C, U, L5 @2 P$ Q2 t
TopCoder公司是一家策划并举办程序设计竞赛的公司,它举办的比赛涉及多个领域。其中之一就是算法(Algorithm)比赛,该赛事大致每周都以SRM(Single Round Match)的形式举办一场,其具有以下特点。
: b" ~/ n9 p& N, \6 ~0 B
; z" y2 _4 g+ p(1) 在1小时15分钟的短时间内挑战3道题。' E! \+ z9 Q. g0 T/ V& b% i7 Y
3 `% z* K* p" Y/ [(2) 提交的结果在比赛结束前是不知道的,整个过程中稍有失误,就会变成0分。9 n, O" z* P" z. ?" S2 n6 ]) m
& k$ ]' C' L0 G; V(3) 在编码阶段(coding phase)结束后,还有一个挑战阶段(challege phase)。该阶段可以查找别人代码中的漏洞。如果能够提供一组输入数据,使别人的程序返回错误的结果,就能得到额外的分数。+ j0 a* E6 P" n* U; I4 m8 o" a
8 Q& }& s P: \( J
其中第3条是该赛事独一无二的特点 ,也是阅读别人代码的好机会。TopCoder还有一个深受大家喜欢的等级分系统(rating system),它会依据SRM的结果给参赛选手排名。另外,TopCoder还会举办一年一度的TCO(TopCoder Open)公开赛。一旦从在线进行的几轮预选中胜出,就能够参加在拉斯维加斯 举办的总决赛。
# @2 y5 h' ` B1 V& Y8 U$ B
1 e; @1 g+ Z7 K, ^历史最悠久的竞赛——ACM-ICPC4 n$ c& [( I+ {8 |8 @( k
* ~( f3 T, f7 [ACM-ICPC是由美国计算机协会(ACM)主办的、面向大学生的竞赛,也是历史最悠久的程序设计竞赛。这是一个三人一队的团队比赛,选手要在5个小时内解决大约10道题。因为比赛中三名选手共用一台电脑,题量又比其他赛事多,并且多是一些实现复杂的问题,所以团队配合显得异常重要。想要从日本参加该项赛事,首先要参加在线进行的国内预选赛,胜出后才能参加亚洲区域赛,取得前几名的好成绩后才能够参加世界总决赛。6 ]" H3 ?7 l. ^) C: L6 U7 B
) f& k2 ]6 K2 l, j讲到ACM-ICPC,不得不提到我们的《挑战程序设计竞赛》(第2版)译者,这颗闪耀在编程竞赛中的明星巫泽俊,就在2011年的5月30下午2时,他获得了第35届ACM国际大学生程序设计竞赛全球总决赛冠军,媒体称他为“世界最聪明的人”。(见下图)
1 Z" n6 I, e! U! K3 b& ~
+ W& A! U( J1 m$ b0 b' w7 ]; H![]()
3 E# R2 E0 t" H7 \
9 k) K& C! ]$ H- S& t![]()
& d& m- e' E8 r/ `+ M9 l
. [$ G; ^ |1 [1 c4 Z* f巫泽俊平时训练的实验室/ X$ k {) t7 L! K) b
# H& O& e) G ?# n3 Q9 D
![]()
- y6 M/ X6 N }7 _- [- o2 H% l2 g) [0 }$ e9 X. o
巫泽俊- j8 E, q! m ` B! }+ p1 n4 O9 l
0 U/ {7 F3 B& r! J$ k! U面向中学生的信息学奥林匹克竞赛——JOI-IOI
* X9 [9 v9 ?0 c. {! k
6 h4 a# ?4 b0 k9 W! h7 i信息学奥林匹克竞赛是学科奥林匹克竞赛的一种,是以初中生和高中生为参赛对象的程序设计竞赛。在日本,首先要参加日本信息学奥林匹克竞赛,取得优异成绩后,才能作为日本国家队选手参加国际信息学奥林匹克竞赛。 其他比赛都需要尽可能快地解决尽可能多的问题,而信息学奥林匹克竞赛只要在规定时间内求解问题即可,成绩与所用时间无关,但是它相对其他比赛而言,求解每道题所花的时间要长得多。虽然是面向中学生的比赛,每年所出问题的难度却是非常高的。: {! L1 g- R6 S/ _; s
, k& r# `% ~% r- u6 [
通过网络自动评测——Online Judge(OJ)
: r/ p7 N8 n* U3 @* {9 B! g8 F
& M& Z; [+ e9 }" Q在互联网上,有一些被称为Online Judge的系统,它们能够自动评测以往程序设计竞赛中的题目。利用该系统就可以练习了。另外,其中一些Online Judge也会定期举办自己的比赛,不妨去参加一下。在此列举几个有名的Online Judge。4 H, ^- Q& j8 V/ x! h% }
6 }$ Q: o; Q; H
PKU Online Judge (POJ)—— 题库中有大量的题目。
- r* s c, i. q. `4 f8 ~会津大学Online Judge(AOJ)—— 还包含日语题。) f3 O/ M8 [0 F) K) W8 V5 e( [# {
Sphere Online Judge(SPOJ)—— 允许使用各种各样的编程语言。
}6 ^1 q; B: R" V% o" R. l3 l% QSGU Online Contester—— 具有模拟参加历史比赛的虚拟赛功能。
; Y$ V+ T( {% P( z A2 Q- M; N4 oUVa Online Judge—— 老字号Online Judge,经常举办比赛。
2 X: l6 G; U e, z0 U9 b) Z( T5 WCodecorces—— 与TopCoder一样定期举办比赛,又同其他网站一样不断维护历届题库。
; v& j! m$ A* y关于本书! K G; S; w# ]& c
; h; h/ G/ v% M0 b: Q![]()
% U3 c7 G2 k6 L; X6 a/ x( W. p6 C; p+ a& @- c# h6 D) K6 ^# m
《挑战程序设计竞赛(第2版)》分为准备篇、初级篇、中级篇与高级篇4章。作者结合自己丰富的参赛经验,对严格筛选的110 多道各类试题进行了由易及难的细致讲解,每章后附有习题。 通过本书不仅可以学到算法,更能学到其设计和运用的思想。
5 w- |1 d' E* C6 I* ]+ x4 E# T) y/ _1 o( Y, n) o& u
只要是具有编程基础知识的读者,均适合阅读本书。书中的源代码均用C++实现,不过只用到了其基本功能,所以即便读者不熟悉C++也不影响阅读。
/ b4 L1 l5 s' s2 H. d
& f6 w, \" E* l1 ^2 z1 W本书的第一版被台湾和韩国引进,获得了一致的好评,让我们看看其他两版的封面风格:)
, k0 C# S+ M9 J6 H* ~1 d4 g3 c" ~- A$ Z6 o9 R' `) d. t
# r% q" f7 D: r
: p7 C, h! [1 S- _2 F |
zan
|