Archive for July, 2005

命中压哨球

Saturday, July 30th, 2005

还有什么事情比在最后一刻命中压哨球更振奋人心呢?在今天进行的最后一次warmup比赛(warmup8)中,我的唯一一次提交,在2:59:11(三个小时的比赛)的时候的唯一一次提交,AC了!那是一道奇烦无比的题题,那是到最后其他人都没有过的题题,那是我花了两个半小时来写的题题,在顶住了两个多小时“光头”的巨大压力后,在最后一刻连测sample的时间都没有的时候,一个鲜艳的Accept出现在了眼前!

命中压哨球确实需要运气,但今天在精神高度集中的情况下,并没有出现很明显的急躁心理,甚至在最后15min,还有条不紊的一步步迈向胜利。我还非常清楚的记得在一个半小时的时候,在对其他题目都失去希望的时候,我就对我自己说,我是不会这么容易放弃的,虽然那时候,这题程序的核心部分还没有动工。

吃午饭的时候,我的程序再次被鄙视了。原来我的思路绕了个大圈,而且在情急之下用了goto这种最好不要用的东西。唉,也罢也罢。

西溪嬉戏

Thursday, July 28th, 2005

应panda要求,少谈点ACM。

反正今天工作完,都少累。吃饭时候,cp话想bg,于是去留食。0甘岩撞到佛祖、大家姐、zp,原来他们打算去西溪游水。他们问我去不去,我说要code,遭到bs。后来不知道点样就跟他们去了。连同cp共5人。我好像年几未游过水了,今晚都玩得几开心。当运动一下。胸肌有点痛。

Warmup Contest 7

Wednesday, July 27th, 2005

今天的话题还是ACM。其实每天的话题也只有这一个。

前几天比较抓狂,据统计,在OJ的近70余次提交还未试过AC的……其中50次都死在同一条题上(以前还做过的T.T)。虽说胜败乃兵家常事,但短时间的大量错误会导致信心下降,反应迟钝,感觉失灵等综合问题。昨晚的TC算是提升番少少士气,但从今天的warmup来看,我的状态还是不太稳定,出现了一些从来未试过的现象。

一开始当然是看题。或者是对题目的感觉已经变得非常的麻木,居然觉得无条题能够做。接下来是极傻瓜的解一个四次方程,拆项拆了5张草稿纸。

眨眼功夫就过了近90min,我居然键盘都未碰过。在0甘多次个人赛中,我从来未试过个几钟未敲过键盘的。这时,同样郁闷的还有zachary,因为精度问题,他一道题wa了很久。

然后我们交换了一下意见。我发现有一道题目我又理解错了(我的英语阅读能力确实有待提高),这道题是我最拿手的bfs。跟住是我非常自豪的一幕:不足20min就AC了。也许真的是太快了,zachary还问我是不是贴代码的。

几乎同时,zachary AC了一题无人A过的题目,同时大叫这题目怎么这么简单。其实他说的就是我解四次方程的那题。我没有理,做当前最多人交的那道,对精度要求比较高的题目。然后是一wa再wa。

这时候,一群人过了zachary打通的那条题目,于是我重新的分析了一下。发现自己头个半钟真的是zhua,都想了一半了,居然无想落去。于是开始解方程,仅仅是直线方程组。

现在是和时间比赛了。剩下半小时左右,面对的是奇烦无比的字母变量。到最后5min的时候,终于敲完代码。跑一下sample,过了,马上交,AC!

这场比赛真的搞笑。在头个半钟寸功未进的情况下,最后连A两题名列第三。我倒也高兴不起来,要好好总结自己存在的问题。

一个是英语阅读能力。在速读的情况下,理解题意,发现陷阱是非常重要的。而我往往在开始的时候不是精神不集中,就是太过兴奋看错题。这还是有个心理素质的考验在里面的。

对于我为什么会花如此多的时间解那个四次方程,我真的不知道当时在想什么。从经验上判断,几乎不可能这样愣算。不去分析这条题目的奥妙之处就去狂算,不化简问题就去死做,这是在校赛中就出现过的错误。

在最后关头,我发现自己的手居然有点抽筋。我太紧张了,这样很容易出错的。这次过了显然也是有运气成份。也算是好事,以后到了最后几分钟会有少少心理优势。

第一次TC

Tuesday, July 26th, 2005

编者按:
TC:topcoder,某国际网上的编程比赛。有米的哦,只是我不知道怎样拿。

今天晚上7点,TC比赛开始。我是5点钟register的,差5min到7点的时候,TC的room开放,可以enter。早前听说TC和ZOJ的规则是不一样的,一个是要用比较高级的语言,最接近我的就是我不会的C++啦(总比C#、JAVA好吧),另一个是只要写一个类就可以了,不用处理复杂的输入输出问题。也就是说,不用写main()函数,调试也麻烦不少-_-b

先做250分的题题(题目共三道,250的、500的、1000的)。也许是太兴奋了,题目全部都没有读进脑子里,怎么都看不懂。隔壁的van老大过来凑热闹,他真的很强,说这不很简单吗?给我讲了一下题意。我开始coding,但写的都是C……van老大看不过去,就教我写。其实根本就说不上教嘛,完全就是听写-_-b

然后开始yy我的main()函数,那个叫zhua呀……调完就交,发现给我写了个得分。后来才知道这只是由提交的时间决定的,这个分还不一定拿得着。

接着yy 500的题目。我继续看不懂,van继续给我讲解。有了250的模板,500的让我瞬秒了。剩下的时间已经不多,看了1000的题目。连van都说没看懂,我也就不指望什么了。

才知道TC有个challenge phase,即让同一个room的参赛选手互相看对方的程序并进行测试,查不出错来要倒扣25分,查出来的话,写程序的一方当然就不能得到这道题目的分数啦,查程序的则有50分的奖励。我以为0分(因为是第一次参加)的选手是不能cha的,就在那看热闹。只见zju的smell(碰巧和我一个room)真的好强,居然cha掉别人4个程序(不过他也很惨,自己1000的题目被别人cha掉了,还扣过4*25)。

最后当然是后台的判题罗。结果出来了,我的250居然是wrong answer(真是zhua的可以的,写漏了一个ceil函数),500的就过了,居然还得了1206分!!zachary仲搞笑,只做了250(他装软件,迟左开始)而且wa了,居然有800多分。

后来土问过先知道,分数同delta值有关,等参加比赛次数多了,分数就会好难涨,还很容易跌。简单的说,分数是浮云。

还好吧,TC当入门了,C++也学了点新东西。

大脑罢工

Monday, July 25th, 2005

突然间不知道自己想干什么,可能是看完01级的DV比较伤感吧,可能是今天开会得知8月份的工作强度大大超出想象吧。反正觉得有好多事情要干,却没有一样想干。

大脑罢工了……

夏夜趣闻

Thursday, July 21st, 2005

故事发生在某个夏夜的6中男生宿舍308。几条汉子热得实在受不了,便决定玩个游戏。游戏规则简单而ws,就是一群人猜“包剪dup”,唯一的胜方可以选择让某人脱一件衫或者自己着一件衫。如果脱到无得再脱,就要去阳台对住女生宿舍大叫“XXX,i love you!”

紧张刺激的游戏马上开始,其中两人属于肉搏型,好快就输晒自己的衫却坚持要对方脱,于是宿舍楼不时传出示爱之声。但经最后统计分析,最惨的并不是那两位勇敢的小伙子,而是某个剩系顾住加固防守,着住三四件衫强忍个几钟头的男生。

PS:据说最近广州连日晴热高温,特意讲番个笑话,希望能为饱受酷暑煎熬的你送去一丝凉意。故事内容经水鱼同志转告,如有雷同,实属搞笑。

羊头与狗肉

Tuesday, July 19th, 2005

传说有间酒店,门口挂着羊头,叫道:“好靓羊肉啊!”我正想吃羊肉,就进去点菜。等上了菜,吃了一口,才发现这根本就不是什么羊肉,而是狗肉!我想找店主理论,但店大欺客,眼看几个彪形大汉站在门后,我也不能说什么,只好自认倒霉。心想,下一顿我一定要换个地方吃。不过今天也实在太饿了,狂吃,越吃越觉得狗肉好吃。这时候我在想,其实我是不是非要吃羊肉不可呢?我是不是一定要换个地方吃呢?抉择中……

又见天使

Sunday, July 17th, 2005

在生仪ftp上很偶然的看到了这个稿子,很偶然的下载了看,看了这个真实且震撼心灵的故事。觉得应该说点什么,却又有点怯懦,因为我和主人公只是初相识的朋友。

又看了一遍,决定将稿子好好保存,让自己士气低沉或得意忘形的时候再看。

我也抱怨过自己的父母,将目前的责任推却于过去。现在看来这是多么的可笑,我已经找不到不让自己变得更优秀的理由。该开工了。

田垒走了

Friday, July 15th, 2005

田垒是我的室友。之前申爱因斯特的时候,他选上了。后来费了一番周折,从去比利时改去瑞士,时间变成了一年。我们都说这是一个难得的机会,对一心想去德国念书的他来说,这个段经历甚为宝贵。当然,我们也知道,去一年瑞士再回来念一年大四,这样的选择也是一种赌博。他说回来之后还想和我们住一个寝,我们也想,但我们都知道研究生宿舍不在30舍。

一年之后,我们毕业,他回来了。我们搬寝室,顺便把他的一些东西搬走。他回来之后,可能和02生医的同学住一起,也就是住我们现在附近的寝室。推迟一年毕业,02级混合班的人都散了,他将要一个人去面对大四的生活。他说他又成为“边缘人”了。也许是吧,但一毕业,我们每个人都是边缘人。看着迷茫的他,就好像看着迷茫的自己。

还好吧,把他送上了回沈阳的火车。God bless him。

Warmup Contest 3

Wednesday, July 13th, 2005

今天有Warmup,特意翘了实验,留在寝室享受ACM。

昨天做实验好累,早上有点爬不起来。想了想,决定不吃早饭,因为我知道自己空腹的时候更容易兴奋。发现离9点的比赛时间还有点距离,就玩连连看热身。

比赛开始了。我按原计划先看第五题(总共五题)。好像是从校赛开始,我就发现最简单的题目往往出现在最后,所以我的看题顺序是最后一道->第一道->第二道->……->倒数第二道。果然,是道简单题。于是我开始coding。当时真的很兴奋,键盘被我敲得铿铿作响。10min的时候,我submit了,wa了……一看status,我居然是第二个提交的,第一个是javaman,5min。ym!我稍微改了一下又交,又wa。然后发现此前javaman又wa了一次,前四次提交居然被我们俩全霸占了-_-b

这个时候,我做了整场比赛最英明的决定,换题。可能是warmup 1 的教训吧,我知道这种看起来简单的题目,在cyjj手下就会变成坑人的题目。我开始看第一题,发现连sample都看不懂,又换。二、三、四都是fatmouse系列的题目,据说这个系列的题目都不好弄。只可惜我从来没有做过fatmouse系列,本着初生牛犊不怕虎的精神,我居然觉得第二道能做。此时是20min,我一看,第五题已经有20次的提交量,却是0 AC。我乐了,知道自己判断没有错。

第二题是道数学题,第一个sample很容易就过了,但描述边界情况的第二个sample可不容易对付。我清晰的记得那个时候下着雨,因为我站在阳台想了好一会儿。我最后判断这是线段和圆的关系的问题,又开始coding。难度确实一般,但烦死了。然后是debug,再次出现(double)=(long)/(long)的精度损失问题,用强制转换改掉。终于过了所有sample,提交,wa。我把小于等于改为小于又交了一遍,还是wa。这个时候,大约是75min,javaman居然已经AC了三道,分别是五、四、三。而且三和四都是10min秒掉那种。我晕,难道我又选错题了?细看status,发现只有javaman一个id有AC,其他人都没有过题。第五题好夸张,有40几次提交。第三第四题比较零星,第二题就我wa了两次……

这个时候无疑是最困难的时候,虽然手上有两题的code,但形势不容乐观。我最后还是决定继续攻第二题。又在阳台站了会儿,回去加了一句if,提交,居然返回了一个鲜艳耀眼的Accepted!我当时就在凳子上弹了起来,高呼AC了,AC了!实在太不容易了,居然有一题是我先打通的。看了一下status,现在是90min左右,自己是第二名,二三四五题都只是一个人过。

士气大振,开始看第三题和第四题。第三题是图,有想法,但觉得比较麻烦。第四题是典型的LCS(longest common sequence),是道DP(dynamic program),我虽然看过解题的代码,但没有信心写出来。大约还剩下80min,我觉得自己最多能再AC一道,于是选了第三题来code。写了一小段就觉得不行,一个是体力开始下降,有点想不清楚了,另一个问题是数据结构没建好。发现又有一个人过了第五题,于是转回去改第五题。

我原来用的是long long。我自己很不喜欢用long long,因为在vc6下没法调试。再看了一下题,发现储存用long 就够了,运算才需要用long long。如果先除后乘的话,用double就可以了。但double的数组在main内开不了,如果放在外面的话,调stl 的qsort不好用(我土了,后来才知道全局量也可以作为参数传入函数的)。又一个很好的想法冒了出来,我用long储存,在运算的时候先用一个double的参数打二传,解决了这个问题。

还是wa,这时候zachary在旁边莫名其妙的喊了一声除数为0。我看了一下题目,发现没有说过数组大小n一定大于0,只是说小于0的时候当作退出。于是我加了一句n为0时输出0,还是wa。这时候已经是150min了。我和zachary都觉得没什么戏了,开始讨论(这几乎是一种默契,当还有题目可以做的时候,我们谁也不吭声。如果已经到了垃圾时间,但比赛还没有结束的时候,我们就会讨论一下)。

我说了对n等于0时候的处理,他觉得输出0也不合适,于是把那句话删了,又交了一次,居然是PE。我们欣喜若狂,马上改成输出回车,AC了!因为刚才用的都是我的代码,他立刻回去改自己的程序。这时我突然发现比赛时间延长了,变成3个半小时。他AC了第五题之后,我给他大概讲了一下第二题的题意,然后就去吃饭,因为半个小时实在是什么都做不了。回来的时候发现他没有过,后来他抱怨说我讲题没有讲清楚-_-b

最终ranklist是javaman 3道(他在两个小时的时候被导师叫出去了),我2道(第二题就我一个过了),还有三个人是一道的(总提交人数11个)。

后来我们几个人讨论的时候,都对我10min换题的策略表示赞赏。我觉得这个东西要具体情况具体分析的。因为我猜到cyjj出题的风格,觉得这题目有陷阱,我才换的,如果同样是简单题,已经有人轻松过了的话,我肯定会继续做下去。另外,javaman居然说他三、四题都是贴代码的,所以很快就过了-_-b

今天最重要的收获还是自信,在之前,我实在无法想象我会在某道题目先拔头筹。这对我以后的比赛真是很大的鼓舞。