省赛小结

  今天早上, 被某些声音踢醒, 睁开疲倦的双眼, 看到窗外灿烂的阳光, 突然眼前星光一闪, 猛跳起床, 今天是省赛日子!!!

 

  光速抓过手机, 关了闹铃, 看了一下, 刚好8:00. 看来是被阳光欺骗了.

 

  起床, 拉S, 洗脸, 吃早餐, 然后喝了第一罐咖啡, 穿衣打盼, 然后, 接到只熊的电话, 催人的. 听令上路了.

 

  一路上, 踩着小巧可爱的单车, 却感觉使不出劲, 脑袋也一片空白, 完全没有一点快要进赛场的感觉, 于是我知道今天心理压力肯定将会忒大. 昨晚基本上没睡, 12点上床, 但三个舍友都同是夜间活动类型的, 在我使劲地想着fallasleep的时候他们使劲地发出键盘的敲击声, 三个方向, 立体效果, 只是没有节奏感, 于是成功失眠了, 其实也不算是失眠, 只是跟平常一样, 只是怕因为认为没有充分休息而产生心理障碍. 不好意思叫舍友们都滚上床去, 因为平时我也是这样弹奏给他们听的, 他们的恶梦做得肯定比我更加痛苦.

 

  到了中大, 开始有点紧张了, 适当地瞄了几个靓女, 试图改观一下心态, 但没效果. 然后试图从穿着同样的ACM队服的同学那里找点自信, 印入眼帘的是一张张天真可爱的笑脸, 比两小无猜在草地上秒速5CM奔跑来得更加恶心, 然后觉得紧张的自己真像个S B.

 

  到了赛场, 在门前拍了个集体照后等了下就进场了.

 

  找到自个队的位置, 看到后座那一队GDUT_复仇之魂, 压力贼大.

 

  开赛倒数321后, 我迅猛撕开了题封, 事实上在他们倒数到3的时候我就下手了, 当时还无耻地暗暗高兴了下. 三份题, 分发完毕, 猛速看题, 我没有像往常一样叫队友只熊跟小杰(化名)寻找其他水题我来搞定A题, 而是叫他们一起攻下A题这个水题吧. 其实是因为当时我扫了一遍看不懂, 很快只熊说直接求和, 我看了下sample, 了解后就开敲, 因为前面的压力, 当时信心低落的我不停地叫只熊看有没有哪个地方敲错的. 敲完后仔细检查一遍, 然后再一遍, 还是没有勇气去交, 因为有上次珠海赛的心理阴影, 水题wa得太多, 排名搞不下去, 信心一直掉落的局面. 最终在只熊的鼓吹下提交了, 返回YES, 信心满状态原地复活. 可惜持续不久.

 

  之后我看B题, 看完后, 先是以为是最小生成树, 再细看题, 不能往回走, 再想了一下, 没有头绪, 果断放弃.

 

  然后去看I题, 题意是给出一个字符串S(长度->100000), 然后给出一连串的模式串(短长度->10, 个数->100000), 判断S是否包含这些模式串(一个或一个以上). 想了下, 然后蹦出后缀树!!这个恶心的名词, 因为前几天一直在研究这重口味的东西, 到现在还没学会他O(n)的构造方法,  但是不要紧, 我有带模版, 拿出模版, 看了下, 却不知怎么使用. 当时直后悔之前没用过后缀树AC点小题目. 经过纠结的思想斗争后, 觉得还是用trie(一直以为这个读tire, 然来是tree)吧, 其实我当时不敢肯定会不会超时. 在没写过AC自动机, 也没模版的情况下, 只能试一下trie树, 看RP爆发吧.

 

  代码敲了一点的时候, 小杰挤过来说K题可以开, 不过他说的是等我A了I题这题就可以做了, 说是一样的题目, 这句话明显给我当时脆弱的信心来了一记更猛烈的刺激, 这题就让我纠结这么久了, 那么多人过了的K题更加恐怖? 我无语与及尴尬地继续敲, 越敲越认为会TLE, 算了, 还是去了解下K题吧, 然后问下小杰能不能开K题, 我好去看一下其他题, 他返回的是一脸不肯定, 他没说什么, 我知道他想说"可以是可以, 但会浪费很多时间, 而且还不敢肯定会不会TLE", 然后我果断去深入了解题意, 看完后我也一脸不肯定, 会不会TLE呢, 要不要用KMP小优化呢? 然后只熊很肯定地说"直接模拟啊, 这么丁点数据不会TLE的", 我一边说"我觉得会超时"一边敲着这自己认为会超时的代码, 敲完后, 小改, 过sample, 还是在只熊的鼓吹下提交了, 不久返回NO-Wrong Answer, 把我们的心情一下子踩下谷底.  查看了一下, 很快找到错的地方, 写漏了个break, 改了之后再察看一遍又一遍再提交, 一边祈祷一边看其他题, 其实是看不进去的, 不久返回, 还是NO-Wrong Answer, 我悲伤+无奈地抱了下头, 表示我拿这题没办法了, 小心地察看了几遍, 还是找不到错误, 然后不停地问伟杰"你确定你没看错题意?", 他返回"没有!". 于是我就更加D疼了. 再看了下代码, 还是无头绪, 然后问他们两个"你们有没有其他能敲的.我打印", 返回"没有", 抬起头, 一片深绿色(过K题的气球)的球, 还间杂一些着I题的气球, 于是跟只熊发了下牢骚"XX, 我不信这么多选手懂后缀树而且在这么短时间内敲完了!(后来为我无耻地发言感到无耻)".

 

  在纠结时候, 只熊说"让我来按我的想法敲吧"(有点生气的语气), 在我肯定我的代码没错但又不知道那里错的情况下, 我说"不要了吧, 重新一遍会浪费更多时间, 还是让我来吧, 我搞定它", 那时我认为他敲的代码应该也是我这狗样. 但我还是打印了代码, 让位给他, 在我细心地察看代码的时候, 只熊在一旁敲, 小杰一如已往地在读取新题的信息, 没办法, 他是三个菜鸟中没唯一一个4级分数超过500的. 我看来看去还是找不到错误, 而旁边边的只熊越敲越显出不顺, 最终他还是选择放弃了, 可能是觉得敲出的代码应该也那样了吧. 后来我不停地埋怨说"看错题了吧", 不停地追问小杰"你确定name里面不包括数字?", "你确定0*#不是拿来被忽略的?", 返回"应该不包括吧!", 后来我觉得这个"应该"是个突破点, 为了抓住这个突破点我重新细细地再看下题目, 间中听到后面的鸭子师兄跟着低调哥(他们就是复仇之魂的成员T_T)说"你知道我错哪里吗? 忘了去掉末尾的XX(没听清楚)", 他们好像也在为K题斗争了很久, 然后终于A了吧, 去掉XX? 跟这题有个X关系?...一边疑问一边看题, 看完之后, 发现题目没说name里面不可以是数字和*#, 然后对着他们两说"可能会包括数字的", 改了一下代码, 不敢提交, 后来忘了怎么去提交了, 可能是认为反正给这题卡了那么久, 多wa几次又奈何. 但是, 戏剧性地返回YES, 我兴奋加无语, 当时我认为最兴奋的是小杰, 他好像每次在返回YES的时候动作好像是跳起来的 + 天真可爱的嘻笑. 只熊不停追问"改了哪里改了哪里".

 

  这时候, 我觉得我该上个厕所了, 一来放松一下心情, 二来其实在那个那个的时候我认为我的头脑最清晰, 主要的还是解决小内急. 此间, 一直在想I题. 此前, 为了不浪费时间, 问他们两个有没懂写KMP的, 拿KMP来交一下I题试试, 只熊不肯定, 小杰也一半不肯定地拿出<数据结构>这本书, 说"我有模板". 好吧, 试一下, 那么多人过了, 可能数据很水. 于是他换过来敲, 我跑出去解决内急.

 

  回来的时候, 我一边想I题, 一边看小杰敲KMP, 一边看其他题目, 看了C题, 点点画画, 毫无头绪, 不知什么时候, 我觉得trie做I题绝不会超时, 如果它超时了, AC自动机也应该超了. 那时小杰还在敲KMP, 我说, "如果这个不行, 我还有解法", 一来想稳定下队里情绪(无数次经验证明我的预言总是让人失望的, 这样的发言已成一句废话), 二来想增加点自信. 在我纠结C题的时候, 小杰终于调试好了他的KMP, 过了sample, 我跟只熊都在一旁边鼓吹, 交吧, 交吧. 有点下赌注的动作. 提交的时候只熊跟我都不忘了提醒"freopen"啊, 小杰再拉上去看一下, 绿色的, 好, submit, 期间, 都在祈祷, 不过当时我有点肯定会超时, 没抱多大希望. 不久, 返回的是不出意料的"TLE". 在我们不停地"oh, no~"的时候, 小杰还是笑着的, 晃了下头, 露出洁白的牙齿, 好像在说"呵呵, 被干了!". AC的时候, 他是跳起来的, WA的时候他还是保持着笑容的. 这点多多少少给了我们点力量.

 

  然后我拿来模版, 看下后缀树, 看能否悟出它的用法, 纠结以失败告终, 无奈地情况下, 我翻到trie树那页, 跟小杰说"你帮我敲这个模版, 千万不要敲错", 然后我再去了一下厕所,希望能找出解决C题的灵感. 回来的时候, 小杰差不多敲完了, 看到大一的那队A两题, 低调哥那队A三题, 多的那题就是I. 小杰敲完后换我上了, 我不停地追问"确定没敲错吧(其实这些都是废话, 小杰帮别人做事基本上不会有疏忽的地方)", 小杰还是拉了一下代码细细察看了下, 说"这个delete函数名我改成del了", 我说"哦, 没事", 一上来, 我就把那个函数全删了, 忘了之前告诉他这个不用敲了=.=. 小改了下trie的search函数, 完成代码输入输出和调用, 运行, 过不了sample, 一边不停地追问小杰"确定没敲错吧", 一边察看代码, 纠结许久后, 找出了某个细节错误, 修改, 过sample, 小杰的自创数据也过了, 提交, 祈祷!!!这是我这场比赛最大的赌!!!, 我故意把提交框隐藏, 装模作样地说"看下其他题吧, 看还有没有能开的", 其实都看不进去的, 不久, 隐藏框不停地闪动, 返回信息了!, 我一边祈祷一边点击, Yes!!!, 三个人都爆了, 刷一下bord, 排在铜的位置, 但感觉如果不再A出一题, 连铜位都保不了.  好像之后我又上了一次厕所, 回来时看到大一的A2题, 低调哥那队出了4题, 排银位置, 然后对只熊说, "再出一题就银了, 加油", 这时候好像还有一个半多钟.

 

  这时候, 我喝了第二瓶咖啡, 直接导至现在写这篇日记时, 身心上下不舒服.这是后话.

 

  抬头看了下, A了G题的一大片, 于是跟只熊一起搞G题, 题是给出N个老鼠, 可以只杀一个或杀掉(N / 2, N 为偶, (N - 1) / 2)个, Alice与Bob每人轮流杀, 最后杀光的为winer, Alice先杀, 输出winer. 博弈题, 只熊有点排斥, 因为少碰这类题, 我有点喜欢又有点厌恶, 对我这种菜鸟来说, 搞这类题纯拼RP, RP好的话一下子找出规律, 否则, 否则. 此间, 小杰表现出跃跃欲试的动作, 我们都支持他, 然后他转过来敲E题. 跟着只熊纠结了许久, 之后我一个人去搞C题, 觉得C题好像昭然若揭的样子. 失败, 觉得还是拼一下RP了, 又回来跟只熊搞G题, 他搞出了个博弈结果表, 我们都想从中找出答案, 他从表里得出个规律, 如果N是偶数(2除外), 肯定是Alice赢, 我当时真TM地喝了迷药了, 竟没把这个规律当回事. 两人一直SSBB地捉摸着, 妄想着从那几个Alice失败的奇数里找出一条公式. 后来觉得自己找与只熊的人工表有差异, 不停追问"确定这个表没错, 再检查一下试试", 返回"没错!", 我再看下题目, XX, 跳了一下, 又理解错题意, 杀掉(N / 2, N 为偶, (N - 1) / 2)个我却一直以为还剩下那么多个. 重新找, 还是没有结果. 这时候原本在敲代码的小杰现在在纠结中, 于是叫小杰让我来敲点东西, 其实是用DP造一个更强的表, 二是怕只熊的表会有错误. 这时候还有不多于半个钟的时间, 刷一下bord, 还保在铜, 不过都封榜了. 在我敲代码时, 我从只熊口中重新听到了偶数时Alice赢这几个字眼, 突然眼前一亮, 不停地叫感"Good job!", 如果N一开始是偶数时是Alice赢的话, 那么那么轮到Bob时如果还剩偶数个rat就是Bob赢咯, 如果某人碰到奇数, 他不可能选择杀一个, 这样的话对手就能得到偶数个rat了, 那么对手就赢了, 只有选择保持为奇数的第二种方法. 

 

  有了解题思想, 我愉快地敲着代码, 这时只熊好像也弄懂了, 小杰一如以往地在认真思考他的E题, 记得之前他有问过我有没有快速求C(n, m)求模的方法, 我当时给了他一个很垃圾的解法. 敲完, 运行, 过不了只熊的表, 查错, 查了挺久, 判断条件写错了. 改完, 过sample, 提交, 返回wa, 这时还有差不多10分钟, 我忘了身旁的只熊有没有表现失望的表情, 但我对A掉这题还有足够的信心, 很肯定不是想法错了, 而是代码错了, 查了下, 原来是除了2要特判外, 我这代码还要特判3才能过. 改完,  提交, 祈祷, 返回"Yes", 神了! 虽然这次比赛做得很菜(各种实力也就这样), 但AC总是让人兴奋的. 本来很认真研究E题的小杰也跳了下, 露出洁白的牙齿.

 

  之后, 还有少于10分钟的时间, 马上换小杰过来搞E题, 我拼C题, 期待着奇迹出现, 把2/3都下注给了小杰. 而这个时候, 只熊在收拾东西.  后来证明只熊是正确的.

 

      结束后, 看了下bord, 低调哥那队同样A4题, 不过排在铜的位置, 只熊很肯定我们也是铜, 我其实很担心连铜都拿不了, 因为G题很水, 可能会有很多队在最后一小时A4以上. 出门后, 知道大一的也A4题, 当时有点吃了一惊, 后生可畏啊, 连AC自动机都搞出来了. 后来才知道他们原来也是用我这个猬琐的伪AC自动机过掉的, 那时有点想竖起手指头对他说"Good job!".

 

  至于其他总结, 我只能说实力暂时就是那样, 必须更加努力提高. 大三的师兄拿了很好的成绩, 也让我们校保持在第三名这位置, 想一想09这届能否胜任呢, 算了, 还是不想了...希望不要太太丢人现眼.

 

  之后就是等待颁奖总结会了, 期间想借此机会逛一下中大的, 中大的建筑很美, 跟GDUT那工厂不是一个级别的, 我想过为什么连设计者和管理者的素质都差那么远.  还有中大举办的省赛也十分让人顺心, 吃的好, 环境好, 各种人性化. 这次是第三次踏进中大, 今天和昨天的试机, 还有一次是中大的同学带进来小玩逛了一下. 之前认为中大会给自己带来一点悲伤的回忆, 进来后完全没感觉, 该那样就那样, 没有拔起一发心弦. 因为我早已进化成废柴大叔了吧.

 

  之后是结束, 领队带我们去南亭吃饭, 结束了这一天.

posted on 2011-05-09 12:16  Kenfly  阅读(249)  评论(0编辑  收藏  举报