以前读本科的时候总喜欢偶尔编个小程序啥的,可是那时候买不起电脑,经常都是写了程序之后在脑子里运行几次就算了,每天做梦都想有台自己的电脑,那滋味……后来读研究生的时候有电脑了,可是太忙了,每天除了做实验,就是在琢磨怎么赚钱,把编程序这事儿就逐渐放下了,也都忘的差不多了。前段时间由于处理高通量测序的结果需要写些程序,于是又比较系统的复习了一下,尤其比较多地看了些关于Python的资料。正好最近Facebook搞了个Hacker Cup编程比赛,就去试了一下。

这个比赛分为四个Round:Quanlification Round, Round I, Round II和Final Round,目前还没结束,正在进行中。Quanlification Round有三道题目,在三天的时间内,只要成功解出其中一道,就可以通过,页面上显示有98551确定参加,59739人可能参加,最后只有5846人通过,我做了两道题,对了一道错了一道,排名2515,这个页面前面编号2515的就是我。 有点意外,一个世界范围的编程比赛,我这点三脚猫功夫竟然也能混进去。

下面的Round I, Round II和Final Round难度就提高了很多,每个Round三道题目,要在三个小时内至少解出一道才能通过,我试了一下,明显感觉力不从心,有些题目根本看不懂,有的能看懂了,不知道用什么算法,还有些能看懂,也知道怎么解,可是3个小时在程序上实现不了,比如有个题目叫做“After the Dance Battle”,可以把已知的矩阵构建成图,然后用图论中的经典算法Dijkstra算法去找最短路径。可是在3个小时内,程序搞不定……于是,Round I就没通过。事实也说明这三个小时的规定难度太大了,Facebook本来打算从进入Round I的5846人中选3000人进入Round II,结果最后进入Round II的远远不到3000人。当然也看到了很多牛人,在三个小时内,可以全部解出三道题目,真是厉害!

Facebook的Hacker Cup编程比赛这次是第一次举行,以后每年一次。与这个类似的,还有Google的Code Jam,网易的“有道难题”等等。

如转载,请以超链接形式注明:转载自:有个博客 [ http://www.yelinsky.com/blog/ ]




Tags: ,