GDOI2018记录
说实话,直到初三暑假升高一的时候,我才开始形成竞赛观。那时才顿觉一年的各个比赛是多么重要。
紧接着我的NOIP就直接爆炸了。这意味着我一年也完蛋了。各种人去WC,然后我留在家里。
那GDOI也只能连炸了,因为有30%的NOIP分数,我觉得我今年也做不了什么了。
DAY0
下午出发很快就到酒店了。去一中吃完饭以后,隔着电脑室的门看到了桌面上的软件。嗯看到了Cygwin,接着yay打电话一问评委发现其实里面啥都没有,那就只好用回命令行+GVim咯。
晚上很清静,大家都没有像去年一样集合起来High。我就打了一道BZOJ的500B题试了下手感,随便看一各个模板就睡了。
DAY1
早上吃早饭的时候看了一下BSGS,到考场外复习了一下动态树分治。
原来以为8点开考,结果8点才进去,到最后8点30才开考,半个小时是用来试机的......
比赛开始看第一道题,题意是给一个数列要你分成尽可能多的块,使得每一块中的和相等。然后发现先求出前缀和,再枚举总和的每个因数\(d\)作为一个块的和来判定\(d\)的倍数是否都出现在前缀和当中不就做完了吗?然后一看哇总和是100w的,\(O(n*d(n))\)会不会爆炸啊?既然是从小到大枚举块大小那么找到第一个合法解就可以break了。试了一下大数据秒出,觉得应该没问题,就往下看。
T2一眼下去完全不会,觉得我凉了,迅速跳到T3。
T3看完,我就想到了天天爱跑步。那应该是找几个不等式来维护查询即可。一开始臆想了一个我都不知道是什么东西的做法,读入一口气写完准备写插入的时候才发现我想了一个完全无法维护的东西。瞬间觉得我凉了。然后继续想,既然做不了那就树套树吧。想了一想发现两个线段树套起来外层dfn内层权值是可以做的!但是是20w的2个log,能做吗?我往上一翻,发现T3是2s,突然觉得看到了希望。然后我就开始打,代码不长,其实只有100行左右。跑了一下大数据1.7s,有点虚。搞了一会发现是读入太慢了=_=。加了一个读入优化就大概1.3s。但是空间也是2个log!完全开不下!我突然很怕毒瘤出题人会不会故意卡这个做法,迫于空间我只能开一半的点数。实际上我随机了几个大样例,用的点数完全没有这么多。我随便写了个对拍拍了一下就觉得ok了。两道题搞完我突然觉得我今天还不错。
然后看T4,完全不会。我也很绝望,回来看T2。
这时候我还有一个半小时,我很希望我能做出来,但是始终还是不会,我想不到任何思路,只能YY了一个只可以过前两个样例的程序交上去。
预估分数100+0+100+0=200。
实际分数100+15+100+0=215 。
这也是挺出乎我的意料,因为我T2这个做法恰好可以过3个小点......T3是wkq的,很良心没有卡空间。听完T2的题解我觉得还是挺亏的,直接用差分的思想贪心处理就做完了,而且我在北京集训的时候有一次还挺顺利的用差分打了一次暴力,这次却完全没有想到。况且代码不过40行。T4神仙题我没怎么听懂。
DAY1排名32,我觉得挺满意了。如果如果如果搞出T2我或许还能再往前一点,但是非常可惜。
晚上大家开始浪了。
DAY2
比赛时间提前到了8:10。
进去一看T1非常不友好,这个T1怎么上来就是反演?推了一下推到了正解的倒数第二步卡住了,就只好先打后面的二分答案+spfa。然后我盯着那个下取整号,一想诶那可以分段处理啊,先预处理出\(\mu(i)*i\)的前缀和,求出所有断点然后算就可以了,复杂度是对的,我挺高兴,检查了一下感觉没问题,就接着做了。
T2在我的眼里和树没有任何关系,于是就只打了前面的小暴力15分,跳。
T3又是数据结构题,有了第一天A了T3的经历我尝试刚今天的T3,结果完全不会,转战暴力,只会前20,想的是从小到大考虑最大值,用个set和堆维护一下,应该有20,跳。
T4是求一个点所在的最小加权环,不会,只会爆搜。应该有20。
出来感觉不太好,因为我觉得其他人的暴力都比我多。
预估分数100+15+20+20=155
实际分数40+15+0+20=75
拿到成绩单我就懵逼了,T1怎么会RE第一个点?还WA掉了5个点!然后T3的暴力也炸掉了,估计是我想简单了没有注意到细节,非常的不应该。
去复评T1,wkq帮我调,发现出现了除0,RE....
再调一下,发现a数组里面居然有0!wkq十分兴奋地冲到了另一边和T1出题人看数据,嗯其实没有0.
再调一下,第一个点的点数只有100,但是输入的边出现了连向101号点的边!wkq十分兴奋地冲到了另一边和T1出题人看数据,真的数据出锅了!但为什么这么多人过掉了!我场上写了一个其实不必要的if,不影响正确性,但对于这个数据恰好出现了除0的情况。但是其他的点我是真的没法说什么,答案小了大约100多,非常难受。暴力和程序有一个共同部分就是二分答案+spfa,我怀疑是这里出了严重问题,可惜我场上没有写更暴力、更稳定的算法来对拍!这是个极大的错误。
听说评委买了云服务器重评T1,被某人复评的时候占了便宜多了30分。
DAY2丢分丢了70,瞬间被甩开大半,DAY1优势全无,回到酒店脑袋一片空白,不知道干什么好,排名掉到了49,还没算上我惨淡的联赛,到明天DAY3不知道会发生什么。
DAY3
酒店饭堂人少了好多,莫名感到难受,尤其是为yxq。
在考前听胖子吹水,再加上昨晚林导的讲话,我坚信今天的题目很难。
T1看了半个小时居然一点想法都没有!
T2让我想到了之前的某一道题,也是动态开点解决一棵超大二叉树的DP。可是不会啊!于是写了一个20分的暴力,再拿个程序对拍一下,应该没有错。继续。
T3想了一下,应该和二分答案对后缀数组分组有关,然后很快地想到了只有两个点的做法,打完以后瞬间来灵感了,可以贪心地证明,一旦两个猴子的路径有交集,我们可以在答案不变的情况下把他们并成同一条路径。问题变成了求图中最多有多少条边不相交路径。一开始我想到Dilworth定理去了,后来一看这不就是裸的网络流吗。。。连起点是1终点是n都那么明显了。
打完以后,虽然我自认为T3应该不会错(我检查了两三遍),但是根据昨天FST了T1,我认为我还需要对拍。然后我写了一个对拍,克随机数据的答案非常不随机,而且暴力实在是太废了,最后我实际对拍时间很短,但是浪费了一个小时。
最后15min,我居然在1min内看出了T1的问题本质,真的是恨晚!开始打小的暴力,打着打着突然会60分的暴力,可是已经完全没有时间了。
非常尴尬。
期望分数30+20+100+0=150
实际分数0+0+100+0=100
又FST了暴力!
仔细想了一下我T1打的那个肯定会被轻松卡掉,复杂度肯定是满的。但是T2!我已经对拍了可是还是WA了!这一来我反而在一道没有什么细节、应该早就A掉的题目上对拍花了太久的时间,接着其他题目没有时间去打暴力了。
DAY3还是很可惜,我感觉原本应该可以翻一点点。结果我FST掉到了56。
Conclusion
不管怎么样,从好的方面看,我觉得我比去年进步了。至少不会犯现在想想都觉得可笑的文件错误。并且能够自主的做出一些题目。
如果从期望方面来看,我的总分约是550,虽说联赛差一点,但是如果拿满了,也能排到30名左右吧。可是现实总是不尽人意的。备考时我打了这么多模拟赛,里面的暴力分基本是会了就不会打错,可为什么一到考场上,这种优势就完全消失了?150的失分很不应该,非常不应该,正解错1题,暴力挂3题,白白耗掉了DAY1的拉分。
所以当下的目标主要有:
1. 确保分数能拿稳,不管是暴力还是正解,这要靠对拍能力和思维能力保证,尤其是暴力尽量要重写一个没有公共部分的程序。
2. 培养题感。比如D3T1这种题应该1min内就想到暴力的做法,而不是场上的半个小时懵逼。
3. 安排好时间。斟酌时间分配,预估好每题写题用时、对拍耗时、预留脑洞时间,避免出现对着过掉的D3T3花了1个小时拍,而T1白丢60分的情况。
我好想要程序,看起来很困难,但还在努力中。
所以我要回去上课内了,回去就是听天书。如斯看来,下面的2个月将是一场煎熬。至少到目前为止我两头都失利甚多。高一的一轮结束了,我算是全盘皆输?大概是吧。
希望将来的一年能够自我突破吧。
就此罢笔。