GDOI 2018

GDOI 五日游

Posted by Monad on April 29, 2018

概述

这次 GDOI 2018,可以说是史上区分度最高的一次 GDOI,它成功地把没有做过原题和做过原题的选手给区分开了(笑),据说这次 8 题中大部分是原题。
这次发挥的不太好,Day1 160,Day2 10(爆炸),没能进 Day3。

详情

市选

这次 GDOI 爆炸可以追溯到市选。市选的题和去年的相比,不是同一个难度。由于初三要应付垃圾中考,OI 手感不断下降。于是乎,我的市选该想出来的没想出来,P1 都能爆炸。然后我就只拿了 110 分。

前夕

GDOI 前的那个星期打算复习一下旧的算法,然后就 A 了几题 AC 自动机、LCA 模板题(然而并没有考)。然后 Day0 晚上复习了一下 AC 自动机和 KMP,和 Tarjan。但是仍然很虚……

Day1

进考场之前,临时抱佛脚,复习了一下 tarjan 的代码。
拿到密码立马就把 4 题看了一遍,发现第四题有个逆元,直接放弃。
然后就怼 P1,首先打了个暴力,然后就发现可以用约数的方法做。但是时间复杂度是 $O(n\sqrt{n})$ 的,瞬间有点方。跑了个最大 input,发现要 500ms,gprof 一发后发现原来读入就吃了我 400+ms,改用 FastIO,60ms。然后跑对拍,拍了那么久一个大于 100ms 的都没有,就觉得应该可以(尽管随机的点大多答案是 1)。
然后 P2,看了 20min,觉得好像可以用 $O(n)$ 的 DP,但写好之后,发现样例都没对,顿时发现有些环可以转很多周,GG。但是后来还是冥思苦想了一会,弄出一个玄学 DP。它的时间复杂度是 $O(k^{2}n)$,但是当 k 越大,得出来的结果就会原接近答案,例如最大的第 5 个样例需要 k = 20,当 k >= 最大转动圈数 时,可得出正解。所以我根据 n 动态调整 k(优先保证不超时)。最终这个做法水了 60。
至于 P3,我看了之后就觉得好复杂啊,打个暴力都要一大堆代码,于是就不想打了。不过 yhf(aspe) 他打了个树状数组和其它一些数据结构,然后好像报零了……
驾驭不了 所以 Day1 得分为 160。

Day2

Day1 没考字符串,感觉 Day2 一定会考,于是特意复习了一下。
Day2 一看 P1,瞬间感觉到出题人满满的恶意,什么谈笑风生、膜法师、小熊维尼、青蛙,危险得不要不要的,一不小心我的程序就可以会 TLE(1s - 1s = 0。但是认真地看了一下,emmmm,二分 k 然后来一个最短路,好像挺简单的?但是发现,如何快速求得互质的数的和呢?(因为剩下的题都很难,所以)想了好 1+h,用了 python 帮助打表,但是还是没用。最后用了个矩阵取点的方法优化暴力,期望 40,但是好像写炸了,报零。
然后 P2 滑稽图(数),要求

$$ \sum_{S\subseteq T}\left |\sum_{u\in S}\sum_{v\in S}[u\rightarrow v]\right |^k $$

其实就是要求 $\sum_{S\subseteq T}f(S)^k$,其中 f(S) 为图 S 的边的数量。然后我用了一个树形 DP,水 k <= 1 的分。但是好像写炸了,0 分,GG。
至于 P3,看了一下好像单调,但是又没细想下去(时间问题),感觉很方。打了个朴素暴力,然后成功水到 10 分。
至此,Day2 10 分,完美爆炸。
成绩爆炸

后记

吐槽

OI?数论? 而且这次比赛一大堆原题,感觉就把做过原题和没有做过原题的选手给分开了……
更多吐槽转到知乎:如何评价GDOI2018?

感受

这次 GDOI,个人感觉不太好,昔日的手感都飞了。而且寒假时学了个 KMPAC 自动机,一个都没有考……反而考了我不会的数论。
该学数论了

CC 原创文章采用CC BY-NC-SA 4.0协议进行许可,转载请注明:“转载自:GDOI 2018