早上做了一场Google的在线笔试。
赛制都很熟悉了,和之前的GCJ一样的。比赛时长3小时,共5题,每题都分small和large两组数据。
读入两个字符串,根据第二个串给出的分段方式,对第一个串进行分析并输出结果。
写第二个串的读入那部分时卡了很久很久。真是对字符串处理太不熟练了,之前北大校赛的时候也是卡很久在字符串处理上。最后还是借鉴了之前用getchar()代替scanf(“%d”,&d)来读入整数以节省时间的方式来读入了每个串分段长度值。提交大数据时一直报含有非ascii字符,结果发现自己数组越界了,如果不是提示这里也就WA掉了。这题做完时已经整整41分钟了。
随后很自然的看了下board,看到C题过的人很多。点开发现是大水题,两次排序后重构数组输出即可。
Problem B. Rational Number Tree
C题过了后,心态稳下来了。开始读B,发现也是只需要在树上寻根即可,非常简单的处理。大数据提交前看了眼输出,发现竟然有负数。分析到long long最多是2^63-1,遂改成unsigned long long提交。
到这时候已经完全进入状态了。机器人走迷宫的题目,读完后发现也不需要太复杂的处理。分析完之后可以发现,机器人每一步的走法是确定的,而所需要做的就是模拟它走完10000步,看是否经过终点。这里处理写得很凌乱,因为当时以为只有两个小时敲得比较仓促。但提交完发现竟然还有1小时。。。
最后一题了,这是唯一稍微考虑了下复杂度的问题。这里大数据是100个源点,图有80000个点,若是稠图最坏情况O(M*N^2)是会TLE的。过了小数据后想了很久怎么对问题进行抽象,但始终没有太好思路。这个时候时间也不多了,想想大数据有8min时限,下下来碰碰运气好了。结果SPFA没有任何优化,1分钟不到就跑出结果了,遂提交之。
12点封榜的时候,好像是排50名左右吧。。。Arios比我快2分钟,能离伟神这么近我也很满足了。睡过午觉过来一看,发现自己AK了。。。。。。最后排名29。其实题目不难的,但貌似很多ACM神牛都没有来玩,不知为何了。。。
事后马上收到了Google的邮件,恭喜通过笔试云云。
不禁也在问自己,这个时候如果要选择,是继续读完研究生,还是去Google工作?
心里面作出回答只用了10秒。而且非常清楚,自己这一决定,怎样也不后悔。
祝自己好运吧。