我的google code jam 2009结束了

  google code jam 2009全球编程挑战赛round2刚刚结束,我rank624,没有进入top500,那件谷歌的T恤终究没有拿到手。好吧,先寄存在那,我明年来拿。

  想想从暑假开始正式做acm题,到现在已经有差不多2个半月了,pku上目前显示我做了152道题目,加上其他oj以及一些google的题,我的总题量差不多在200的样子。

  暑假的时候为什么要做acm题呢?记得最初的想法是熟悉算法和数据结构,对于参加acm比赛其实不抱什么希望。并不是我不相信自己的能力,而是我记得acmer都说,acm的汗水是以年来计算的,我的起步实在太晚了。

  刚开始在pku上做题的时候,很喜欢看rank榜。那时候每做出一题,总是能前进一两百名,我也就做一题看一次rank,然后心里乐滋滋的。

        做题的话,肯定有自己做不出来的,这样必不可少的一件工作就是读别人的解题报告和代码。搜解题报告,自然会逛到那些牛人的博客,然后也就顺便看看他们的心情日志什么的。这些东西看多了,就知道了做oi和acm那些最顶尖的牛人,一是了解到成为一个牛人是多么的不容易,二是了解到自己和他们之间的差距那简直是高山仰止。还有看了博客,知道了百度之星、有道难题的程序设计比赛,可惜今年的比赛都结束了。上网搜搜,找到了gcj的比赛,好吧,报名。

  其实我并没有多重视这个比赛,因为知道它是全球范围内的,大牛如云,我这个小菜就不要去瞎搅和了。可是bei-z却很重视,一直督促我好好做,资格赛那天还来给我送饭了

  资格赛的题目还是挺水的,那时候的我都在上午全切了,不过因为数组开小了,有一个题目的大数据没跑过,最后rank2700+。然后是round1,round1有三场,每场的top1000晋级。本来我是打算先做第一场,没过就继续参加第三场。做第一场的时候没什么压力,第一个题目的小数据也在30分钟左右就出来了,不过我没想到这会是我全场唯一做对的一个,后面的两个小时都纠结在了第三题,一个关于数学期望的问题。不过很意外的是,我居然凭借那唯一的一题在时间上的优势,rank800+,第一场就晋级了。再再然后,就是今天的round2了。今天的比赛时间是凌晨0点,选个这样的破时间,google明显欺负中国人。考虑到寝室晚上可能会比较吵,我选择学院的产学研机房来做这次比赛。其实机房晚上是不让学生通宵的,所以在那看门的大爷上来检查的时候,我把门,灯,电脑都给关了,自己蜷缩在位子上,大爷手电筒的光穿过窗户照进来,让我有了电影里面做贼的感觉。10点半到11点半,本来想好好休息下的,可惜屋子里的蚊子不配合,根本就没睡着。比赛开始,先看第一题,读了一半,看到一个单词matrix,还有什么行列交换的东西,然后我立刻想到了高斯消元什么乱七八糟的,这东西我都不会,所以跳过,去读最后一题。最后一题是个几何题,圆包含圆的,我平面几何很烂,所以又不想做,不过我当时注意到小数据里面限制了N的最大值为3。好吧,我又老老实实去读第一题,读完发现其实是个排列问题,没有开始想的那么复杂。想了个贪心,大概证明了下就开始写,记得我写完的时候是20min。跑了下sample,找到一个小错误,改了,过sample。下载小测试数据,提交后返回incorrect。我有点怀疑自己的贪心策略,于是我一边找代码的bug一边考虑思路对不对,可是两方面我都没发现问题。我就不断的单步调试,这样时间到了1h,这下我有点慌了,因为这时候过第一题的人已经有800+了。又调试了一阵,猛然发现不存在的情况我没考虑,赶紧给数组加上初始化,下载新的数据,跑一遍提交,终于看到那个correct了。这时候是1h9min。之后我拿到最后一题,因为知道N限制在3,想了一个很土的办法,把小数据过了,时间是1h20min。接着看第3题,读完后发现可以转换为图着色问题,图着色问题我之前做过,上blog拷代码,本以为可以很快pass,但没想到等我做出来的时候已经是2h了,并且送了两次wa,原因很简单,int乘法溢出了。这时候我rank600+,我知道要想晋级就必须再出一题。读第二题,发现是个有点复杂的DP,我赶紧写代码,一直到最后一分钟,可惜终究是没有出来,我就这样被淘汰了

  我的最终排名是624。其实我还是有机会的,470-500的分数和我都一样的,但因为速度的原因我排在后面。假想我早点发现第一题中数组初始化的问题,假想我早点发现乘法溢出的问题,假象。。。。。。

  虽然最后的结果有点遗憾,但个人还是比较满意的,每一次比赛自己的rank都在进步。

  好了,淘汰了,自由了。

  

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值