5月29日和5月30日这两天,北师大举行了第二届程序设计竞赛(暨 ACM 选拔赛)。我作为命题人(1 of 3)和裁判(1 of 4),参与了这次竞赛。
5月29日是热身赛,供选手熟悉比赛环境(PC2 )http://www.ecs.csus.edu/pc2/;30日上午9:30至下午2:30正式比赛,共6题,个人单独参赛,每人一台电脑,编程语言为C/C++,可查资料。
比赛过程中,评判软件没有出问题,真是万幸。热身赛时,server 居然出现非法操作,而且更奇怪的是完全不影响比赛进行,那时大家都不敢去点那个Message Box的“确定”,怕程序彻底 crash.
为了避免泄题,6道比赛题目29日晚才确定下来。每个命题人找三道题,从9道题中选出6道作为比赛题目。题目涉及组合计数、搜索、动态规划、模拟、字符串操作等;不涉及图论、计算几何。
从比赛结果看,我们对这次的命题非常满意。22名参赛人员中有18人至少做出了一道题,全部6道题都有人做出(说明难度适中);最多的一人做出了5题(且时间充裕)。这套题的区分度很好,做出4道或5道的各一人,应拿一等奖;做出3道的3人,应拿二等奖;做出2道的7人,应拿三等奖;做出1道的6人,应拿鼓励奖。
比赛结果在:http://202.112.88.161/bnucpc/bsjg.htm 我对其评奖结果表示困惑。
这种程序设计竞赛对提高选手的编程能力无甚帮助(甚至可能起副作用),它要求在很短的时间内(用哪怕 dirty 的办法)写一两百行的“用一次就扔”的小程序解决一些 somewhat 无聊的问题,代码简直惨不忍睹。写程序和写软件毕竟是两码事。