2017年上海 ACM/ICPC ECL-Final

前几周和教练申请,愿意自费出去比赛,所以才有了这一次机会。这也是3年多以来第一次自费出来。

今年的比赛时间安排不是很好,可能是区域赛安排到了12月初的原因。由于周六要参加六级考试,我是那天晚上坐高铁前往上海的,幸亏这些都是轻车熟路。唯一值得记一下的是,我从场中路地铁站出来后,周围比较冷清,只好用滴滴打车去宾馆,这一次司机直接开到推荐上车点来接到我,没有使用电话沟通。前几个月在北京实习时,弦哥经常在内部说这个功能的重要性,可以给滴滴剩下近千万的虚拟号码开销。现在终于享受到了这个好处。

来到宾馆之后,找队友拿了队员证以及衣服。惊喜的是今年谷歌送的小礼品是 Google Cardboard ,平民级别的 VR 眼镜,记得之前内核恐慌里面听 Rio 他们提起过。拿到之后研究了一下,确实蛮有意思的。

由于前几个月在学校内修仙比较严重,睡得比较晚,导致第二天8点10多分,听到外面有人的动静才起来。匆匆的洗漱了一下,就和同学一起前往上海大学。

到达比赛现场之后,惊奇地发现,他们已经把午餐给发下来了,所以直接开始吃零食……

刚开始都比较正常,我也在那里简单地看看题目。然后,看都L题,题目比较简单,看起来像是一道博弈题,由于没有上机的机会,所以我知道简单的推一下,大概推了10以内的情况,我认为自己找到了规律,所以上去写,不过第一次没有通过。下来之后,我再推了一下16的情况,明天自己刚才错在哪里,所以就重新上去写了一下。在111分钟的时候,我们通过了这一题。最后半小时内,我和老王一起写H题,凭借着他强大的逻辑能力,在289分钟的时候通过了。最后由于人多人会写的J题,我们没有通过,所以只有以7题遗憾结束。

算上打星队伍的排名大概是73名,获得银奖。

最后在等待领证书的时候,一个志愿者突然跑过来,问我们要一包零食,说上午到现在都没有吃东西。我拿出一包豆腐干给了他,祝福每一个努力拼搏的人。ACM生涯在续费一年之后,就结束了。

照片不知道为什么不能调整方向,就放在这里治疗颈椎病吧
get_thumbnail


2017年西安区域赛

怎么开头呢?
10月20多号的时候,教练通知我们,一定要在赛前训练一场。仔细一想,上次训练在5个月前……整容倒是没有太大变化,周神(通过微软、腾讯、今日头条、京东和拼多多面试)和God王(曾经在阿里实习过),三个人暑假都在外面实习,回到学校之后也没有心情训练。10月25日(周三),我们拉了一场貌似是印度那边的区域赛,打了一下,感觉手感还行。周四就带着学弟学妹们坐火车前往西安,这也是我校继2015年EC-final之后,再一次派出多支队伍去打区域赛。

周五上午抵达西安站,由于一些情况,果断卖掉学弟学妹,我和队友3个人提前打车去了酒店。到达之后,发现他们离酒店还远,就在旁边找了一家饭店吃法。点了几个菜,到现在都觉得手撕羊肉不错,毕竟60多一斤。然后,就是常规的办理入住手续。上半年过来的时候和其他学校一起住在别墅,还能泡温泉,美滋滋。这次人来太多,经费紧张,就只能让我们住在标间。虽然环境还是可以吐槽的,但至少有wifi可以用了……

晚上,一群人又出去吃了一顿火锅,西安的物价真便宜,最后剩下好多蔬菜没有吃……

day1 热身赛

早上起来之后,发现喉咙有点痛,和队友表达了明天可能会失声的担忧,并且表示不想去医院看,看好了多尴尬。10点左右集结队伍徒步前往西北工业大学。

这次比赛的地点和上一次不一样,终于搬到了体育馆。不过确实大,都能放下350+队伍,多年之后会不会有学校租个鸟巢打比赛?领完衣服,拍了照片。我们就高兴的去了食堂吃饭。吃完之后,我和周神一起去校园逛了一下,果真是强校,实在是太大了。

下午3点左右,抵达比赛场地,准备热身赛。老王让我上去打一些头文件,我感觉,如果今天一道题目都不会写,不是就白打了吗?队友想了一下,只能无奈地看着我……

比赛开始之后

我快速地看完A题,说了一下题意,队友就开始写了。在决定猜什么数字的时候,周神强烈要猜2017,我说了一句傻子才会猜2017,然后他们就Yes了,我无法可说……
B题,简单模拟题,周神搞了一下就通过了。

最后就是C题,三个人一起看了好久,没有什么想法。我开始自告奋勇地说要写一个暴力,他们奇迹般的同意了我的方案。于是就获得了上机的机会,写到一半时,后面的队伍就欢呼通过了C题。综合他们一系列的反应来看,绝对是暴力过的,我的心也就放下了。由于好久没有写题目,所以用几分钟调试。通过这题之后发现,排名居然是第三,而且和第一名才差1分钟。毫无疑问,队友对我展开批判,痛失热身赛冠军……

v2-28df8e8bd4ceebc2cc3ac8b461201f54_b

之后的时间就是学习其他人大佬,一顿乱试。时间还有多,队友上机打了一个表,验证一个猜想,就想出了C题的标算。最后,实在没有什么可以干了,决定提前半小时离场吃饭……路上队友怕今天把明天的人品败光,我告诉他,正真的共产主义者是无所畏惧的。这样我们高高兴兴地吃完了晚饭,然后搭车回到了秦龙。

晚上,一个队友在网上认识的河南农业大学大佬请他吃烧烤,我又跟过去混了一顿。和他们聊了一下子,我说了一句,你们一定会成功的。果不其然,青岛赛区他们获得了银奖……

day2 正赛

参加过这么多场比赛,第一次遇到口号是“安全第一”的赛区,周神的祖传行李箱不让带,所以他去寄存。我抱着一大堆书籍和打印的资料走进了体育场,路上还听到有人议论。从赛后来看,这些东西都没有用到……

比赛开始后,一切都比较顺利。老王单人ACB题,周神一秒钟猜出了F的公式,然后我就鼓励他们不用想其他样例就把猜想给交了。85分钟地时候,老王不动声色的AC了G。看完H题意之后,我和周神说这个贪心地取就好了。他想了一下,决定用线段树。然后在他快要写完的时候,我看有那么多人都过了,感觉不是很像,后来出来一问,暴力也能通过……

之后做的是L题,有关lol的题目。前一天翔哥还和我吹周神是财经faker,但我发现他居然不知道banpick,于是乎解释了好久。看完第一个样例的后,我决定自己算一下。这时候,突然弹出一个公告,告诉我们怎么计算样例,就这样完全明白了题意。然后队友就给了一个任务,让我去把第二组样例打出来……500个01组成的字符串,我机智的想到去讨论版提问,能不能发送一份样例过来,毫无疑问的no response……所幸老王想出了4个for循环的暴力,复杂度高达10*1e8,出于对西安赛区判题机的信任,他就开始写了。然后,懒得输入样例,膨胀到在写完之后就交。果不其然wa了,多组输入忘记数组清空,改。又是一发wa,看了一下有操作逻辑写反了,再改,AC。接下来就是自我安慰把这40分钟当成输入样例的时间……

之后我们就陷入长达1个小时的僵局,三个人看着A题感叹世界真是神奇……后来老王不得不放弃这一题,从而转战K题,想了半个多小时,就开始上机码。写完的东西神奇的re了,然后派出换上周神上去改。不知道后来发生了什么,折腾到269分钟AC。之后就是估计排名时间,根据封榜前的排名估计了一下我们大概在32名左右,感觉有点悬……又开始对A题进行一顿乱搞,在最后几分钟里面提交了好多次,但是都没有返回结果……

离场前气球合影,可惜最后一小时过的题目不发气球。
IMG_6227

所以带着最后的悬念来到了颁奖典礼,在等待的过程中,发现学弟遗憾的只是铜首……滚动46名时,发现我们飘到32名。再加上看到下图是,我在学校的群里说了一句最差34名,就这样获得了自己的第一块区域赛金牌,学校acm史上的第二金。

最终排名也是32名,这个世界真是神奇。

IMG_6227

然后又是我上台高高兴兴地领奖。

三人合影留念

搞完这些之后,坐着校车来到了韦曲南站。我带头冲向上半年吃过的烧烤店,后来发现,老王没有一个能吃的,真是尴尬,其他人也没有什么兴致,最后就当我请客了……然后在旁边找了一家宾馆就睡下了……

day3 归来

12点左右,在火车站附近开了一间房,把我们的行李都放下了。然后,在周神的带领下,前往回民街。逛了好久,没有太多意思。19点火车返程杭州。西安区域赛就这样结束了……

最后还要感叹一下,周神和老王还真厉害,带着我都能获金奖,不过说回来还是喜欢去年自己在北京拿的铜。自己的贡献是一场比一场小……如果没有ec-fianl的话,acm生涯到这里就结束了吧,也留下一些遗憾,如果有来生,我也愿意信来生,再见……


浙江省第十四届程序设计竞赛总结

昨天是我第三次参加浙江省赛,比赛地点依旧设置在浙大。上午和其他人一起坐车过去,然后就是都差不多的流程。

由于一些原因,这一次我的两个队友异乎寻常的厉害(高质量就业:阿里研发工程师+京东算法工程师的组合)。赛前内心毫无波澜,不过周神教导我,作为浙财的五队,我们只要保个铜就可以了。

上午9点25左右,热身赛开始。打开试题册看了一下,我们发现热身赛题目跟去年一样,快速通过A和C题。周神机智的想起去年最后一题(输入一个数对一个非常的大梅森数取模,并判断结果的奇偶性)大数据只有四组,通过一番测试之后,今年也是一样。他写了一个程序直接判小的数据,开始枚举最后四组答案的排列组合。我们大概交了10次左右,就发现枚举的地方出现错误,然后改了一下又重新交,最后枚举到13(1101)的时候过了。本着写完热身赛去吃饭的原则,God王让我们开始写B题。不过仔细想了一下发现,万一写完发现是错的,是去吃饭还是不去吃饭,这是个很大的问题。所以,我们直接前往食堂。

12点15分左右,比赛正式开始。我自告奋勇的从A题开始看,本着看样例猜题意的指导思想,我大胆猜想出写法,趁他们两个不注意直接拿起键盘开始写。由于年纪大了,速度更比不上那些年轻人,所以也写了一会儿,交完之后大概有70只队伍通过。之后God王上来平推了B和D。我看一下C题,发现这是个简单题,把题意告诉老王之后,他也很快做了出来。至此,比赛大概过去45分钟。我们写完全部的签到题,完成保的铜的目标。

三个人继续分头看题目,没过多久他们两个人又开始讨论F题的写,很快也想出一个非常巧妙的方法,不过后来发现这个是超时的,所幸God王又想出了线段树的写法。我和周神开始研究E题的写法,很快也验证了用数位DP的正确性,不过也想到这其中有很多细节要考虑。说到这里,不得不讲一下,我昨天晚上就打印了两页模版,其中一个就是数位DP的模版。God王改完F之后,勇敢提交,直接返回了WA。然后我们三个看了好久代码,都没有找出错误来。God王直接出去逛了一下,我和周神开始写E题。God王发现周神读题目没有讲要输出子树的数量,改之就过了。之后,三个人共同推了E。接下来的时间差不多就是在挣扎了,H题God王写来写去都是超时的,G题周神说要找规律,打印了14页数据开始找没多久,就告诉我想的全部是错的。17点14分59秒,God王最后交了一份H题代码,没有什么奇迹,我们结束了这一次省赛。

晚上,在小剧场举行颁奖,这一个环节最主要的就是听听队名。当本科组银奖没有报到我们的时候,我的内心十分的开心。听到第一批金牌也没有报到我们的时候,周神对我讲了一句,是不是下面没有我们,今天就是冠军。事实证明这是幻想,然后他就高高兴兴的上台领奖了,毕竟昨天晚上特意做了一个发型……

总的来说,这次省赛比浙大校赛难了很多,所以写完签到题不要错太多的都可以拿铜。中间过度居然拿了一道数位DP和一道线段树,命题人直接高估了浙江省程序设计的教育水平。最后面的几题,我们三个人共享完题意之后,完全没有思路,其他参赛选手也差不多,完全沦为观赏题。后来想一想,这一份题目只是在错误的时间出现,毕竟比赛的覆盖面是final到专科。但是,我感觉这样的比赛,一个人五小时也能做5题,生不逢时,为什么去年没有这么好的命啊。不过还是要感谢两位大佬带我体验了一下省赛获金的感觉。这一次,同场的还有学军和杭二的高中生,颁奖时,有以为领导还感叹大学生不如高中生。殊不知对于这些高中生来说考上浙江大学都是失败。

不知道明年还有没有机会参加。


2016年北京区域赛

今年,一队发挥出色,拿到全部赛区的名额,而且大三也没有多少队伍。所以我们这种弱队还有机会去参加第二场比赛。

作为第三次去北大,流程都是非常熟悉的。周四下午坐Z10出发,第二天上午到达北京。周五下午我一个人去了前两次来北京都没有机会参观的故宫。

故宫之旅并不是很好,主要是游客太多,紫禁城失去了往日的威严。不过,另外加收门票的钟表馆很棒,皇室的藏品居然如此花哨。有些钟表的滴答声一百多年之后依旧飘荡在场馆之内。出了故宫之后,走了半个小时才找到一个地铁站,这个设计非常的愚蠢吧,之后就动身前往北大。

周六下午热身赛,我们出来的比较早,在体育馆的看台上做了一会儿,看着下面排列整齐的两百多台电脑,心中生出一丝感动。之后就是进入场馆搞事情,电脑是五位数的戴尔移动工作站,外接了鼠标、键盘、和显示器。和我自己在寝室里面干的差不多。海巨表示显示器大看着爽,不过也发现键盘上有日文符号,这就比较影响我的发挥了。然后是例行看一下 周围的队伍,前面是北师、后面是北航、右上方有杭电一队,感觉压力又好大,虽然他们根本不会在乎我们。

比赛开始之前,队友想起在大连时,我讲了一句热身赛只要看一下AC是什么颜色就好了,最后被我成功奶死,全部是WA,所以告诫我不要乱说话。拿到题目之后,我们看了一下,发现题目是前几年北大出的区域赛和网络赛的。其中B题还是我们前几周训练过的题目,我拿起键盘表示这次终于有机会拿个一血了,马上写了起来,队友还是表示不相信。当我写完提交后,邪恶战胜了正义,果真发挥了一个WA,此时其他有一个队伍拿到这题的一血,彻底骨折。所幸改了一下还是过了,之后C题也是原来写过的,上去写了一下就过了。之后就讨论了一会儿A题,不过没有得出什么答案,感觉暴力上去肯定会超时,D题也不会写,最后上去让海巨测了一下机器和各种返回就去吃饭了。晚上回去才发现A题比我们想的还要暴力,没有勇气啊。

由于我们知道不会来北大吃太多餐,所以晚饭比较丰盛。一遍吃一遍感叹北大的伙食真好,早知道原来好好读书了。回到宾馆后,海巨在找题目写,翔哥想着阴阳师靠他的符偷渡欧洲,我看着炉石直播学习技术。又是一天。

周日,因为经费紧张,住的宾馆离北大比较远,我们三个7点就出发了,8点半左右到达北大赛场,然后等待比赛的开始。

9点比赛正式开始,开场顺利的写完了两道签到题,然后我们看了一下一道搜索题,我感觉可以写了,另外两个人去看了一下I题。我写差不多后,海巨上来写了I,也很快的写完并提交了,不过返回了WA。换我上去继续写搜索题,很快我写的超时了,只好改的优雅一点,翔哥也指出海巨理解错了题目,他们两想了一下决定帮我一起改搜索题,小改了一些东西之后,又提交了两次,返回两个WA。当时我们很紧张了,不过没有办法,海巨在看代码,我在写最暴力的准备对拍,翔哥在那里构造数据。最后,翔哥构造出了一组强力的数据,成功把我的代码hack了,我发现改掉一点就会对,不过没有想明白怎么回事,就改了一下记录答案的方式,最后自信的提交返回AC。然后我们将目光聚集到了K题,这个破题,题目就看了好久才明白,不过数据范围居然有10的100次方,我们搞了好久才都没有想出来,我感叹了已经上次在大连也是死在这种恶心的题目上,还是要想,我们写了一个10的9次以内的暴力程序打表,神奇的发现最大符合要求的个数只有样例给的83个,然后他们开始推规律,我在那里划水。想着写不出来,只要让海巨上去写一个只要83个答案表的程序,赌一发梦想。虽然感觉北大不会蠢到把最后一个答案告诉你,海巨还是写了,不过交上去还是WA。之后就陷入了江局,封榜后一会儿,我算了一下发现15位数随便填的情况下1就有10的16次左右个了,果断抢来电脑,不知道是什么力量让我点开海巨WA的代码,我看了一下差点吐血,找一个最大不超过n的值被写成立找一个最小超过n的值,我问了一下海巨,他还不知道,我直接改了一下就交上去,再赌一个梦想,然后就AC。我们马上点开排名,不过只能现实封板前的排名103,这题交了应该会前进一些,但是北大只有93个奖牌。海巨表示把I题写了才能稳,我看了一下I题,果断表明我不会数学题,只能靠你们了。然后实力分析一波之后,感觉要ntt操作,找了一下发现没有带这个模版,只好告诉海巨要么你想个其他的方法,要么自己创造一个ntt算法。我也没有找到其他组说的图论题是哪一个,只好提前选择死亡,吃起了发的午餐,果真像赛前说的一样吃东西就等于放弃了,最后还有10分钟结束的时候,我们三个人都愉快的吃起了午餐,把自己的命运交给其他小笨蛋来掌握。边吃边感叹这是第一次在正赛封榜后过题以及终于不是什么题数靠前的队伍了。

比赛结束之后,不知道结果怎么样,我们只好在那里等待,这要是在之前可以直接会师火车站了。北大搞了一堆事情,才开始滚榜,判完我们题目的时候好像跳到了81名去了,他们两个开始统计超过我们的人,又过了一会儿,发现最后名次固定在了85名,然后三个人都好高兴。滚完铜牌区之后,开始颁奖,我也有幸登上北大的领奖台。之后,那些也和我们没有什么关系了,反正两年多的努力有了回报就可以。

从北大出来,直奔麦当劳买了一下晚餐就去火车站了。我特地点了一杯拿铁,稳如拿铁。还是要相信科学。


杭电OJ AC500题

距离AC400题,过去了135天。

有很多出去的学长学姐都是不知道把红宝书背了多少遍,又一次和XX聊天,他说我打赌你背的有些单词,你一辈子都不会用上,但是尽管如此,很多人都背下来,这就是毅力,就是韧性。有的人放弃了,有的人却坚持下来,不得不承认,只有耐得住寂寞的人最后才会成功。学习是一项孤独而崇高的事业。


杭电OJ AC400题

距离上次AC300题,过去了106天。

有很多出去的学长学姐都是不知道把红宝书背了多少遍,又一次和XX聊天,他说我打赌你背的有些单词,你一辈子都不会用上,但是尽管如此,很多人都背下来,这就是毅力,就是韧性。有的人放弃了,有的人却坚持下来,不得不承认,只有耐得住寂寞的人最后才会成功。学习是一项孤独而崇高的事业。


杭电OJ AC300题

距离上次AC200题,过去了89天。

有很多出去的学长学姐都是不知道把红宝书背了多少遍,又一次和XX聊天,他说我打赌你背的有些单词,你一辈子都不会用上,但是尽管如此,很多人都背下来,这就是毅力,就是韧性。有的人放弃了,有的人却坚持下来,不得不承认,只有耐得住寂寞的人最后才会成功。学习是一项孤独而崇高的事业。


杭电OJ AC200题

有很多出去的学长学姐都是不知道把红宝书背了多少遍,又一次和XX聊天,他说我打赌你背的有些单词,你一辈子都不会用上,但是尽管如此,很多人都背下来,这就是毅力,就是韧性。有的人放弃了,有的人却坚持下来,不得不承认,只有耐得住寂寞的人最后才会成功。学习是一项孤独而崇高的事业。