您的位置:首页 > 编程语言

Google Code jam 编程挑战赛 赛后感

2008-07-18 19:51 337 查看
昨天早上7点开始,今天早上7点结束,Google Code jam 编程挑战赛的资格赛(Qualification Round)历时24小时,一共三题,我做对了两题,以50分的成绩进入第一轮(Round 1),只要拿到25分就可以晋级。

前几天我上网的时候看到txj(其实我天天上网都能看到他),他问我知不知道Google Code jam,我说不知道,让后他发给了我一个网址,我进去一看,靠,纯英文,logo里面写着“cout<<"hello,world"<<endl;",内行一看就知道是跟编程相关的,再一看是编程挑战赛,再再一看不收报名费,管他呢先报名再说。在我的怂恿之下,txj也报名了。

因为这个比赛是真对编程爱好者的,只要13周岁以上非google员工都可以报名,我一看这条件就知道高手如云,也没对这个比赛抱有多大希望,当时想的就是想感受一下,毕竟这种免费的又适合我的高水平比赛不多。当时觉得能过资格赛我的任务就完成了,而且这几天事情比较多,也没有刻意的去准备。

比赛时间是Jul. 16 11:00pm UTC,推算一下是北京时间7月17号早上7点,于是我6点起床,6点半就坐在电脑前看着主页上的倒计时等待比赛开始。

七点比赛准时开始,晕,我却不知道怎么登录进去(英语看得就是没中文顺眼),顿时一阵冷汗……经过一场尴尬,总算是见着考题了。金山词霸早就侯在那儿了,等着我随时派遣。比赛过去9分钟,一哥们儿就把第一题做好了(ScoreBord是随时更新的),我靠,第一反应就是他肯定是说英语的人,因为我连题目还没看完。

比赛过去半小时,在金山词霸的协助下我算是把第一题的题目读懂了,是关于拯救宇宙的,其实只是个噱头而已。接下来就是想算法了,想算法的过程比较难以描述,反正算法就是在我天才般的大脑皮层的沟回里面滚了几圈就想出来了,尽管可能不是最优算法,但肯定是可行的算法。编码(俗称敲代码)的过程就简单的多了,再说编码对于我来时是没什么挑战性的。这个算法用C#写的,不到100行,核心算法不过40行,要是换成C写的话也最多两三百行就能搞定,所以说编码不是问题。其实关键是想算法和算法的实现,我在这个程序里用到了数据结构中的队列,算是我第一次把数据结构的知识应用到实际解题中去,也不枉我数据结构97分的成绩,哈哈。

调试过程是整个程序最关键的,我写完程序下载了3次数据,我把结果提交上去都是提示incorrect,因此有了3个wrong tries,也被罚时12分钟。这里有很多技术,比如设置断点、单步跟踪之类的,不详说了。反正发现几乎都是笔误,算法没有问题,毕竟我的逻辑思维还是比较缜密的。第四次下载数据的时候我有点紧张,上传结果的时候更是紧张,结果显示了绿色的correct,我兴奋的一下就跳了起来(当时家里没有人),此时距离比比赛开始已经过去两个半小时了。我已经有5分了,在ScoreBord的里面可以看见我了,我又下载了20分的large数据,上传回去等待着比赛结束出结果。就这样,第一题算是搞定了。

第二题是求列车时刻表的,难度也不大,在我能力范围之内。不过算法还是想了好一会儿,在尝试了几组数据之后觉得可行了便开始编码。然后下载了两组数据调试,结果是incorrect,这次不是笔误了,是算法的问题,边际情况考虑的不是很到位。经过两次修改,第三次提示correct,这个时候不像第一题那么兴奋了。此时已经是12点半了,过去5个半小时了。我带着一丝得意去弄中饭吃了。

吃饱了继续看第三题,苍蝇拍问题,说白了就是道高中平面几何题,但是我不会,想死了想不到可以用什么算法。这个时候就犯困了,不由得就躺床上睡着了。四点钟起床继续想还是没有头绪,一直到晚上11点,咨询了诸多同学无果的情况下,我放弃了。

总结一下,这次比赛能做出两题出乎我的意料,能通过资格赛更出乎我的意料。我预计我是止步Round 1了,但是我还会努力去比的。或许明年我会更有准备参加这个比赛。

差点忘了说txj的情况,算了,还是不说了,想到就搞笑,想知道就自己去问他吧,哈哈哈哈。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: