ICPC2016沈阳赛区总结 by cds
想要拿个银奖,虽然怎么想都感觉不太科学,没有学长带,题也没刷多少,190个队也只有30%的能做到,但总有有一种迷之自信,好吧,最后铜奖滚粗,事实证明光有自信是没用的。————————————————————————————————————————————————先发题解:感觉还是不发了吧...比赛中有两道题几乎全场都在10分钟内解决了,一个是A题:输入两个数a和b,判断是a+b+b大还是a+a+b大,另一个是B题:输入一个字符串,规定这个字符串的值为字符串中字符'C'的个数12+字符'O'的个数16+字符'H'的个数,输出字符串的值,这种题放在C语言程序基础的考试中也应该是防挂科的吧....然后比赛结束后铜奖线是3题(其实就是1题),这个难度跨度意思就是“哎呀,好像必须要出签到题的样子,那我就从C语言题库中拉个两道吧”。最后比完赛我们出了4题,其中一道C,一道E,C是一个矩阵快速幂,矩阵如下。E题意是n个点,m条边,问里面有多少个包含k个点的完全图(完全图中任意两点都有边相连),其中k和n都很小,且每个点的出度不超过20,xjb搜,对于每一个点DFS暴力每种组合,注意两点就好,一是如果发现加入当前点后不构成完全图就直接减枝,而且每加入一个点时只需判断当前点是否与前面的点都相连就行了,这样对于最大的数据搜索第一个点的复杂度大概是C(20,10)n不到,搜索后面所有点是C(m+1,10)n不到,其中m为剩余点数。(好像还是发了题解)————————————————————————————————————————————————赛前准备:感觉这次赛前准备还是非常充分的,一是我的两个队友都是我的舍友,平时讨论题的时间特别长,并且在比赛前3天我们也专门对这次比赛进行了“战术商讨”(直接讨论到凌晨1点半),也总结了各自的弱点,在综合考虑后决定临时分下工:ykc恶补数位DP,zy去熟悉树形DP,并且找一些经典却又很难(没学的)算法,而我去补下网络流和数论,并且去找一些感觉非常经典的题(特别是在51nod上找,没做过的更要),直接下载打印AC代码,万一比赛能用到呢。后来我们向学长借了他的模板,加上自己的模板和白书、蓝书、字典以及网上临时下的,加在一起大概能塞满一个书包,虽然后面用到的不到5%。————————————————————————————————————————————————热身赛:第一题是猜数,10个数中有一个是对的,全场很多队都1A了,队友ykc看到立马不淡定的,看了一眼题目非常确定的说:这道题就是输出"JustAnumber",当时我感觉这真是太(yu)聪(chun)明(zhi)了(ji),于是决定先上去WA一发,WA了之后我就一直就在测系统,大概过了半小时,只剩下PE没测,因为这个必须先A一道题目,所以我决定把B题给做了,感觉是到模板题于是直接上模板,但抄完才发现不对劲,题目好像不一样哎,于是只好重新自己写,大概写了50分钟,终于写完了,A完之后队伍排名涨到了190,热身赛刚好也结束了,我们就直接回去了,虽然总感觉有东西忘了测,但想想应该不是很重要就算了。————————————————————————————————————————————————中间准备阶段:没准备,休息,三个人也都没有认识的人,早早就回宾馆休息了————————————————————————————————————————————————正式赛:开场前10分钟是签到时间,我们翻译+过题用的总时间大概是18min,排名140,手速真慢,不过没关系,到后面这几分钟几乎可以忽略不计,之后正式比赛开始,我们都是挑短的题目看,不到10min就看懂了D题,我心想:可能又是一道签到题,但几经思考后发现根本不能做,于是只好换题,这个时候zy翻译出了C题,说就是计算F[n]=F[n-1]+2F[n-2]+n4,只不过n有232次方那么大,当时看榜只有C题和E题有人过,心想:完美,就做这题了,一开始觉得这题是个矩阵快速幂,因为不是log(n)的时间复杂度根本过不去,但是完全没有思路,这时zy决定上去打表看有没有规律,无济于事,也只好在一旁推公式,而旁边的ykc一直在想d题。不知不觉1小时过去了,一点进展都没有,毕竟我们做过的题不多,接触的矩阵快速幂只有斐波那契数列,我们也只好从斐波那契数列的公式上找突破口,其实F[n]=F[n-1]+2F[n-2]的矩阵还是很好推的,只不过后面的n4不知道怎么处理,大概过去90min分钟时我决定看下E题,这个时候正好ykc刚翻译完,无缝衔接,我就和ykc一起讨论了下E题,但也没思路,想了10min左右有了暴力的思路,复杂度其高无比,没有A的可能。2个多小时过去了,不知道有多少个志愿者拿着气球从我们身边经过,我们的排名掉到了160多,但当时心态还是不错,心态要是差就炸了,我决定去洗把脸,回来继续想,刚洗完脸,就犹如醍醐灌顶,立马就有了想法:我为什么不能将(n+1)4拆开呢?于是回去让zy打了下矩阵快速幂的模板,我在旁边构造矩阵,构造出来后就感觉这题稳了,上去改改数据就好,检查完确定万无一失后就交了,WA!再检查,发现一个地方打错了,第一遍居然没找到,改完交,AC!刚好中场153min,排名大概120,没有铜,但是4题的队只有70个不到,感觉过了4题还是可以拿铜的,于是就开始想E题,说是想E题但我们三个人都有了暴力的思路,怕时间不够我就直接上去码了,心里想A不掉就优化,总能过的...吧,不到20min就码完了,然后就是TLE--优化--TLE--优化无限循环,中间队友帮我出了很多主意,每次优化都有效果--T的更快,但是没有用。3个小时过去了,E题已经无法再优化,有种山穷水尽的感觉,我们只好对着这个xjb搜的程序xjb改,然后xjb交,A了....E题231--nA,排名到了80,3s激动后我们跟榜看H题,之后就是悲剧,先是卡翻译卡了很久,中间我还想了其他题但都没法做,后来翻译出来感觉是个DP,但时间已经不足以让我们码出来(说真话感觉这榜有点歪啊,为什么感觉J不比H难)比赛结束,我们一直看着滚榜,看看有多少队超过了我们,只要数出28个队我们就GG,但仔细想想好像不科学,最后拿了铜,真是非常开心,但还是有点失望。————————————————————————————————————————————————结尾:加倍努力,明年冲金,当然队伍配合也非常重要,引用别人的话说:ACM是一个1+1+1>3的比赛,和OI是不同的。队员实力导致必然每个人有擅长的方面,也有每个人不擅长的方面,但否能够扬长避短考验每个团队的能力。无论是在有异议时理解和信任别人的想法,还是在别人质疑时有自信坚持和完善自己的想法都是非常考验一个人的。其实我感觉这次比赛还是比较遗憾的,一开始我就觉得我们队是稳铜冲银的,但最后感觉连铜都差点没拿到,并且剩下的题也不会做,就是时间不够,明明该注意的问题都注意了,上场比赛的教训也吸取了,可出现这样的问题,一是经验不足(难以应对题目偏难的场),二是做题不够,三就是队伍配合的问题,虽然我们三个是一个宿舍的,但这种大型比赛和在一个宿舍三体电脑打重现,打cf是不一样的,还是需要多加锻炼。————————————————————————————————————————————————榜单:http://board.acmicpc.info/icpc2015/neu_onsite.PHP队伍排名:99