- 在线时间
- 2 小时
- 最后登录
- 2013-7-16
- 注册时间
- 2013-7-15
- 听众数
- 0
- 收听数
- 0
- 能力
- 0 分
- 体力
- 7 点
- 威望
- 0 点
- 阅读权限
- 20
- 积分
- 5
- 相册
- 0
- 日志
- 0
- 记录
- 0
- 帖子
- 3
- 主题
- 2
- 精华
- 0
- 分享
- 0
- 好友
- 11
升级   0% 该用户从未签到 - 自我介绍
- 爱数学,爱编程
 |
程序设计竞赛有着各种各样的形式,在此,我们来介绍其中最负盛名的几个。
R4 { R! @* B8 T5 Q6 x, U) p
- E) b3 v D7 C: n/ f世界规模的大赛——Google Code Jam(GCJ)
( C9 S' z# g# X% F' T
# \) |3 F# r! u- {它是Google公司几乎每年都会举办的世界规模的程序设计竞赛,参赛者要在2~3小时内解决大约4道题。一旦从在线(Online)进行的几轮预选中胜出,就能够参加现场(Onsite)总决赛。该赛事的特点是,每道题都备有Small和Large两组输入数据。即便是难度系数较大的问题,只要输入规模足够小,依然可以简单地求解,这一形式深受广大参赛者的喜欢。另外,GCJ并不在服务器上自动执行程序,而是要求将源代码和本地执行的结果一同提交。$ w) z' R. r* g& F
9 `. q& g4 z! b
向高排名看齐!——TopCoder
( p4 X2 V& c+ ^+ P8 i$ r7 e5 @$ r* W) W4 c
TopCoder公司是一家策划并举办程序设计竞赛的公司,它举办的比赛涉及多个领域。其中之一就是算法(Algorithm)比赛,该赛事大致每周都以SRM(Single Round Match)的形式举办一场,其具有以下特点。2 w% b m0 y2 D7 }: ?
# I9 q9 A1 F4 G* H7 r6 e(1) 在1小时15分钟的短时间内挑战3道题。
: e6 h, F) A* \& \& b6 @3 D2 f, i4 [$ }* f- [ V- P
(2) 提交的结果在比赛结束前是不知道的,整个过程中稍有失误,就会变成0分。" n% ~+ G, i0 L F: a" D) ?+ \
1 q Q" { J/ ^4 y9 a& Q; b+ _
(3) 在编码阶段(coding phase)结束后,还有一个挑战阶段(challege phase)。该阶段可以查找别人代码中的漏洞。如果能够提供一组输入数据,使别人的程序返回错误的结果,就能得到额外的分数。
- _: c# H- m9 W0 G& [4 a8 Q& F: {% C! G6 S
其中第3条是该赛事独一无二的特点 ,也是阅读别人代码的好机会。TopCoder还有一个深受大家喜欢的等级分系统(rating system),它会依据SRM的结果给参赛选手排名。另外,TopCoder还会举办一年一度的TCO(TopCoder Open)公开赛。一旦从在线进行的几轮预选中胜出,就能够参加在拉斯维加斯 举办的总决赛。7 i8 a0 l( k7 h3 N+ W) t: V
$ v* t* m- f; S) \! m历史最悠久的竞赛——ACM-ICPC0 ]* i. c/ p/ x' ]* M) c
0 \" F1 Y% A3 p& s# V0 e! ^1 OACM-ICPC是由美国计算机协会(ACM)主办的、面向大学生的竞赛,也是历史最悠久的程序设计竞赛。这是一个三人一队的团队比赛,选手要在5个小时内解决大约10道题。因为比赛中三名选手共用一台电脑,题量又比其他赛事多,并且多是一些实现复杂的问题,所以团队配合显得异常重要。想要从日本参加该项赛事,首先要参加在线进行的国内预选赛,胜出后才能参加亚洲区域赛,取得前几名的好成绩后才能够参加世界总决赛。
* U3 v, t- x* K- g2 ?( J, B! ~" a/ T; H5 E: F
讲到ACM-ICPC,不得不提到我们的《挑战程序设计竞赛》(第2版)译者,这颗闪耀在编程竞赛中的明星巫泽俊,就在2011年的5月30下午2时,他获得了第35届ACM国际大学生程序设计竞赛全球总决赛冠军,媒体称他为“世界最聪明的人”。(见下图)% m' |$ J9 \, |# F9 t2 p
- C0 \7 H) u6 I3 {7 w) D, A![]()
8 ~' I+ ?4 A+ o
. D4 ? x+ A5 y7 }% {6 K) e. D 6 I5 d7 S& _5 r! x K: K( H# d
+ V+ x2 k2 j1 [% F# s) F7 N巫泽俊平时训练的实验室
6 ~8 |, I! X! b ]3 {+ |% x4 \
. k' D# E% q- C7 {/ P. p, |) L8 ~2 Z 6 F0 Z$ `. j* a- S
% j+ k0 R1 U$ Z+ A0 m, E7 u1 u
巫泽俊1 Z# S5 Z% P5 e5 L
C& x: | P+ d i# I面向中学生的信息学奥林匹克竞赛——JOI-IOI; {. E {5 V! x7 K, w
' s a* K- {8 Z1 l6 H信息学奥林匹克竞赛是学科奥林匹克竞赛的一种,是以初中生和高中生为参赛对象的程序设计竞赛。在日本,首先要参加日本信息学奥林匹克竞赛,取得优异成绩后,才能作为日本国家队选手参加国际信息学奥林匹克竞赛。 其他比赛都需要尽可能快地解决尽可能多的问题,而信息学奥林匹克竞赛只要在规定时间内求解问题即可,成绩与所用时间无关,但是它相对其他比赛而言,求解每道题所花的时间要长得多。虽然是面向中学生的比赛,每年所出问题的难度却是非常高的。
. ^+ c: {; m5 j: a6 C# ^/ x' T: g1 D0 p" ?- B" `! J, d. N3 X7 ~
通过网络自动评测——Online Judge(OJ)
% m( S- S" F% K, P1 [$ s, }9 S- v' z, I# d
在互联网上,有一些被称为Online Judge的系统,它们能够自动评测以往程序设计竞赛中的题目。利用该系统就可以练习了。另外,其中一些Online Judge也会定期举办自己的比赛,不妨去参加一下。在此列举几个有名的Online Judge。
: t3 L8 j. r% P3 N# V# t3 ~0 F) Y5 m4 c6 L
PKU Online Judge (POJ)—— 题库中有大量的题目。
7 I& h3 J8 |! ^ @/ g会津大学Online Judge(AOJ)—— 还包含日语题。$ m: x3 X& A" R! G- R
Sphere Online Judge(SPOJ)—— 允许使用各种各样的编程语言。) o# q1 }. D, _2 V9 w8 `
SGU Online Contester—— 具有模拟参加历史比赛的虚拟赛功能。
r, T0 T+ s. f' _3 _UVa Online Judge—— 老字号Online Judge,经常举办比赛。& V- r7 Y5 i' w3 t
Codecorces—— 与TopCoder一样定期举办比赛,又同其他网站一样不断维护历届题库。
+ E" }" I* E$ u! M4 u关于本书
" V6 i3 o7 G8 E- L8 Z. M7 g3 c1 B' T4 T" g* q X* P2 L
![]()
' i5 A# v$ G+ [7 ]3 Z+ B9 E
" u# R3 T7 F9 D0 V6 B* ~, [2 ]5 c E《挑战程序设计竞赛(第2版)》分为准备篇、初级篇、中级篇与高级篇4章。作者结合自己丰富的参赛经验,对严格筛选的110 多道各类试题进行了由易及难的细致讲解,每章后附有习题。 通过本书不仅可以学到算法,更能学到其设计和运用的思想。
( H6 f4 v( U% B! Q1 {/ i r* P0 @: P& U1 ?) Z4 z/ @
只要是具有编程基础知识的读者,均适合阅读本书。书中的源代码均用C++实现,不过只用到了其基本功能,所以即便读者不熟悉C++也不影响阅读。
) Y; ~1 F0 O: E. G: B+ O# f8 p; l* {0 v5 n& T- R/ B9 q
本书的第一版被台湾和韩国引进,获得了一致的好评,让我们看看其他两版的封面风格:)1 R" S. @9 W1 L) o; i. b Q1 H; b# x
3 `! A- ~9 q u! c6 ?' }1 J
4 s4 g8 `$ z8 w) T
0 j. X( K6 W. C+ e. \
|
zan
|