首页 > 代码库 > ACM版《孔乙己》 (转载自陈维晃的个人主页)
ACM版《孔乙己》 (转载自陈维晃的个人主页)
(原文地址:http://whchen.net/blog/index.php/archives/acm-wsn.html)
Arena的格局,是和别处不同的:是用Java做的客户端,可以随时System Test每场SRM,还可以看到挂掉的数据。喜欢做Coding的人,傍午傍晚闲得蛋疼的时候,每每花75分钟,切一场陈旧的250和500,——这是没有比赛的时候的事,有比赛的时候大家每次都把服务器挤挂——然后继续,水掉250之后趁热切掉500,倘若更NB一些,便可以留时间把1000也写一写,或者检查一下250和500有没有bug,如果1000或者准备数据,准备等会儿cha人,但一般的选手,多是铁牌男,大抵没有那么NB。只有Final拿牌的红id神牛,才提交了1000之后,又准备了各种邪恶数据,慢慢的等着cha人。
我20岁那年起,便在学校的ACM集训队里打酱油,队长说,我样子太傻,怕切不动dp,就写点阿烦模拟吧。区域赛上的阿烦模拟,虽然没什么算法,但弯弯扭扭规则复杂的也不少。出题人往往要你会不会揣测他的英语描述是什么意思,看看你会不会用各种堆来维护状态,又要你在各种规则下面做复杂的判断和考虑,然后才开始拍码:在这种严格的时空限制下,STL里的容器和方法也很难不TLE。所以过了几天,队长说我干不了这事。幸亏帮做了个OJ有苦劳,辞退不得,便改为专门写几何这种无聊的题目了。
我从此便整天的在各大OJ上,专切我管的题目。虽然没有什么看了解题报告还切不动的,但总觉得有些单调,有些无聊。队长一副凶脸孔,题目也没有以前那么水,教人酱油不得;只有WSN到BBS上发帖,才可以笑几声,所有至今还记得。
WSN是进过Final却是蓝id的唯一的人。他的代码很长,缩进怪异,时常夹写看不懂的注释;一堆乱糟糟的变量命名。虽然是进过Final,可是没有拿到名次,似乎是黑马杀进去,也没有过题。他写解题报告,总是满篇的“这道题其实不难”,叫人半懂不懂的。因为他的ID是WoShenNiu,别人便从拼音拼出“我神牛”这样不靠谱的字,只好给他起个绰号,叫做WSN。WSN一到BBS上发帖,所有灌水的人都回复笑他,“WSN,你的TopCoder帐号又被封啦!”他不回答,继续回帖说“这道题其实不难的”,便贴出200来行代码。他们又故意把他的帖子顶起来,说“你一定又贴人家的模板啦!”WSN睁大眼睛说,“你怎么这样凭空污人清白……”“什么清白?我前天亲眼见你在上场SRM 1000里面贴人家费用流模板,还贴WA了”。WSN便涨红了脸,额上的青筋条条绽出,争辩道,“参考代码不能算贴……参考!……拍代码的事,能算贴么?”接连便是难懂的话,什么“其实会写”,什么“麻烦”之类,引得众人都哄笑起来:店内外充满了快活的空气。
听人家背地里谈论,WSN原来是学计算机的,但终于没有发paper读研,又不会找工作;于是愈过愈囧,弄到将要讨饭了。幸而会写代码,便替MM做做C语言作业,换一碗饭吃。可惜他又有一样坏脾气,便是贴别人模板。写不了几行,便连人家的头文件、注释,一齐贴上。如是几次,叫他做C语言作业的MM也没有了。但他在我们OJ里,品行却比别人都好,就是从不贴别人代码;虽然间或拿模板过了题,暂时在best solutions里面排名低,但不出一月,定然自己重新写一份来刷版,多刷几次WSN的id便在很多题里排名很高。
在这些时候,我可以附和着灌水,队长是决不责备的。而且队长见了WSN的帖子,也每每这样问他,引人发笑。WSN知道自己不能和大牛们谈算法,便只好向小白们说话,有一回他在SRM Room里问我,“你学过算法么?”我回了个省略号,他说,“学过,……我便考你一考。最大流该怎么做?”我想,整天帮人做C语言作业的人,也配考我么?便不再回复他。WSN等了许久,很恳切的说道,“不能做罢?……我教给你,记着!这些算法应该记着。将来去Regional的时候,写成模板带去。”我暗想我从来不管这类的题目,而且我们队长也从不将最大流写成模板;又好笑,又不耐烦,懒懒的答他道,“谁要你教,不是残留网络上找增广路么?”WSN显出极高兴的样子,回复了一个猥琐的笑容表情,说,“对呀对呀!……最大流有四种做法,你知道么?”我愈不耐烦了,准备退出这个Room。WSN说可以预流推进,想贴个模板出来,见我毫不热心,便又打了长长的感叹号,显出极惋惜的样子。
有几回,几个小白看到WSN在POJ发贴,也赶热闹,把WSN的帖子顶起来。他便给他们一人发一个模板。小白们看完模板,仍然不散,回帖找他要模板。WSN着了慌,打开template的文件夹看了看,又回帖说,“不多了,我已经不多了。”又看看自己的模板库,摇头说,“不多不多!多乎哉?不多也。”于是这帖子就在一片笑声中沉下去了。
WSN是这样的使人快活,可是没有他,别人也便这么过。
有一天,大约是Regional前的两三天,队长正在慢慢的检查要打印的模板,忽然说,“WSN长久没有来切题了。还有19个tried but failed呢!”我才也觉得他的确长久没有来了。一个灌水的人说道,“他怎么会来?……他各个OJ都被封号了。”队长说,“哦!”“他总仍旧是贴人家模板。这一回,是自己发昏,竟贴了楼爷的代码。楼爷在Astar的代码,能贴得吗?”“后来怎么样?”“怎么样?先写取消过的题,后来是封号,很多OJ都封了他,再TopCoder也封了他。”“后来呢?”“后来没有WoShenNiu的帐号切题了。”“没有帐号了怎样呢?”“怎样?……谁晓得?许是退役了。”队长也不再问,仍然慢慢的检查他的模板。
Regional之后,秋风是一天凉比一天,看看将近初冬;我整天的挂题,也须弄点模板了。一天的下半天,没有人交题,我正在BBS上闲逛。忽然间看得一个新贴,“这道题其实不难。”这语句虽然不多了,却很眼熟。看时WoShenNiu帐号并没有解封。仔细一查看,那WSN便在OJ上注册了马甲WeiSuoNan。他几乎不再过题,代码也已经不成样子;见了我回帖求解答,又说道,“道题其实真的不难。”队长也登上OJ去看WeiSuoNan,一面说,“WSN么?你还有十九个tried but failed呢!”WSN很颓唐的答道,“这……下回再AC吧。这一回是1Y的,题不难。”队长仍然同平常一样,把WSN的帖子顶起来加亮,“WSN,你又贴人家模板了!”但他这回却不十分分辩,单说了一句“不要取笑!”“取笑?要是不贴,怎么会被封号?”WSN低声说道,“忘了密码,忘,忘……”他的语言,很像恳求队长,不要再提。此时已经聚集了几个灌水的,便和队长都笑了。我看了他的解题报告,下载了,放在集训队的群共享里。他又上传了四个附件,见都是最大流模板,原来他便用这模板刷版的。不一会,他回复完帖子,便又在路人甲们的说笑声中,用那模板又贴了几个最大流的题目。
自此以后,又长久没有看见WSN。到了Final后,队长看看OJ的统计说,“WSN还有十九个tried but failed呢!”到第二年的OJ改版,又说“WSN还有十九个tried but failed呢!”到暑假集训可是没有说,再到Regional也没有看见他。
我到现在终于没有见他交题或发帖——大约WSN的确退役了。