今晚Google code jam 第一轮,很不幸,错误范了不少。

第一题由于太急了,看错题目了。其实应该是很简单的,也不应该错的。题目是在电影院的一排座位中找两个空位置,并且左面那个位置离两边都最远。我当成两个座位的两边距离了。。。

最后一题我本来没太大希望做出来的,没想到最后只超时5分钟就做出来了,早知道直接做最后一题了,一下子可以得好几百分呢。或者,至少应该看看,做不出来再做前面的也来得及。。。。

愚笨了哈。。好久没有训练了。。。

好消息是,firefox可以在spaces上写东西了。

 

看了一下结果,我排名208,看来是进入下一轮了,可以拿一件T-shirt了。嘿嘿。

最搞笑的是昨晚我们两个傻瓜还在那数……人家有个地方直接显示排名。smth有个人很郁闷的说,我排名第251。。。

Lastest update:

Round 2失败啦。第50名的分数都是一千多分。俺排名188。。。

不过好像这回成绩都大幅度提高,呵呵,怀疑有人作弊,比如几个人一起做题之类的。

最后一道题比较有意思,其实就是把无限循环小数转变成分数的形式。遇到的算法无非是循环小数变分数和约分,当然,还有分数加法。我就想了半天没想明白怎么变成分数……小学奥赛的题目啊。。哈哈。最后网络也断了。。咳咳。又只对了一道题。

以下是跟一个朋友的email记录:

From: w21009
To: Shawn Ma
Subject: 这么快又codejam了?

留题目下来了么?
——————————————————————————–
题目不难。只是我速度不快,而且一些基本算法不够好,比如求两个数的最大公约数。被kill了。
最后一题就是给一个无限循环小数,比如"0.3(12)",表示0.31212121212,求他的分数形式。要求约分。
当然,他可能给一个0的循环,或者9的循环。比如"0.3(000)“其实就是3/10.
——————————————————————————–
越往后越简单了?:)
据说现在是75分钟3题是不是? 要这个速度能全做出来真是N,唉,真正的速度是看不见的…
 
欧基里得法轮除求最大公约数?

——————————————————————————–
啊,发现很多选手用C++有好处了。他们订了很多宏,比如
#define FOR(a,MIN,MAX) for(int _a=MIN; _a < MAX; a++)
typedef VS vector;
还有一些其他字符串操作什马的,再include<>…using…都写好了,最后还是可以省一些时间的。
不过前50都是三道都作出来了。。
——————————————————————————–
这招的确不错
 
用C++有不少好处
而且似乎Codejam用的式g++编译器,很多g++特有的feature可以编译过去
比如支持typeof和__typeof
_
 #define FOREACH(x) for(typeof((x).begin()) pos = (x).begin(); pos != (x).end(); ++pos)
还有C++标准还没有支持变长数组,但是G++支持

——————————————————————————–
主要是我现在用java习惯了,不习惯那些hacking技巧。。。咳咳。而且这种与工业的要求是不相符的……
对了,这次我看了一下,前50基本没有professional,90%都是学生。。。
——————————————————————————–
你工作中难道用的是java?
这些技巧的确有点“复古”的味道,复古到需要coder用各种技巧节约代码长度的时代了:)
我看TopCoder上的程序高分都不用易读的标示符,这样的竞赛和工业要求还是有点gap
 
看样子开复叔主要招应届生决策是对的:)
真是长江后浪推前浪,一代更比一代浪…

——————————————————————————–
我看你挺浪的……
 
我们基本往java的方向走。C++的部分打算一两年的abandon掉。。。
 
我昨天写程序,所有的变量基本不超过两个字符的长度,比如我做了一个class,表示分数,就叫class R, 分子分母就叫int a, int b;