Day0

到杭州的时候是下午,休息了一下就吃完饭了。

晚上的时候闲着没事复习了一下几个不太熟的数论板子,\(\mathrm{exgcd}\),\(\mathrm{ExCRT}\),\(\mathrm{BSGS}\),还有高斯消元,线性基什么的,但愿不考。

感觉有点紧张。

Day1

好早就到文渊中学了,感觉人特别多,进考场前膜拜了一下\(\mathrm{LHJKY}\)大佬,还从手机上看了一下\(\mathrm{windows}\)系统下的开栈方法,然后就进考场了。

地下室感觉有点闷热,还没有厕所,不得不说,那个移动厕所是真的垃圾。

时间到监考老师就公布了试题的解压密码,\(\mathrm{Ren2Zhen0Shi1Kao9?}\) \(???\),我竟然还打错了一次。

开始先看题,果然还是有树上问题,而且和去年\(\mathrm{Day2}\)一样有两道,第一次似乎没那么送分,还是要找找规律。

先推了第一题,一开始看到对于\(95\%\)的数据\(k\leq2^{63}-1\),对于\(100\%\)的数据\(k\leq2^{64}\),一脸蒙蔽,,感觉没什么区别啊。

然后就开始推了,最后发现可以根据题意递归,先求十进制下的值,然后再转换为二进制,时间复杂度应该是\(\log^2{k}\),好像没什么问题,但似乎有点挫。

保险起见,就和模拟程序对拍了一下,结果发现拍的飞快,这时候差不多\(9:10\)。\(\mathrm{10000}\)组数据很快拍完了就开了\(\mathrm{100000}\)组继续拍。

然后开始看第二题,感觉有点复杂,觉得应该要先思考固定括号串的统计方法,推了一下,发现可以分治,但是结合暴力\(n^2\log n\)可能过不了\(2000\)的点,感觉不太行。

再想一下发现可以直接模拟进出栈然后统计,那样的话\(n^2\)暴力的分应该是有了。

仔细一想,进出栈统计是一个增量的过程,可以直接把链的数据也过了,感觉还不错。但是放到树上似乎要支持撤销,感觉需要一定的技巧,一下可能写不出来,决定先写第三题的部分分。

这时候发现第一题的对拍怎么越来越慢,\(30\)分钟\(10000\)组都没拍完,然后想关闭对拍的时候发现\(\mathrm{exe}\)根本关不掉了,有点慌,考前停课的时候似乎有大佬也遇到过类似的情况,也拍了很多组数据了,感觉应该问题不大,就没有和老师说。

然后开始搞第三题的链和菊花,感觉链应该比较简单。一开始先想了一个贪心的做法,结果发现必须删掉所有边,有点难办,花了不少时间,还是在原来那个算法的基础上改进的。

然后我想再试试能不能关掉第一题的\(\mathrm{exe}\),结果发现什么的打不开了,电脑显示内存空间已不足。

赶快叫了老师结果是对拍把电脑内存用完了,最后没办法重启了一下,还好程序都存在\(D\)盘,没什么问题,就是费了一点时间。

然后就肝第三题的链到最后,调出了一个能过小样例的做法,不知道时间怎么样,也没时间写第二题的正解了。检查文件配置,然后就出考场了。

下午回到宾馆发现似乎第三题确实很难,但是大家都\(210\),一开始感觉自己也有\(200\)左右,也还可以。

然后在知乎上看到看到第三题出题人发的题解,直接自闭,链的部分分写的好像是假的。然后又看到第一题要用\(\mathrm{unsigned}\),又丢了\(5\)分,。再然后发现第二题可以用主席树撤销,我们竟然没有写。

心态有点不好,满打满算也只有\(175\)分了,感觉\(Day2\)翻盘的概率不大了。

Day2

还是一样的流程,很快就开始考试了,解压密码我又输错了一次。

看到题就感觉不太可能是有些人昨天说了\(\mathrm{Day1Day2}\)放反之类了,感觉\(\mathrm{Day2}\)更有难度了。

第一印象:\(T1\)神仙计数,\(T2\) \(dp\)\(+\)鬼畜优化\(+\)高精,\(T3\) 估计还是计数。

先推了一下\(T1\),发现怎么\(dp\)的不太行,可能要直接计数,主要是因为有\(a_{i,j}\)的系数很烦。

然后看了一下\(T2,T3\),\(T2\)很快想到了\(n^3\)的\(dp\),但是分好像不太够,发现可以直接用二维偏序求最值,但是前缀和值域有点大,可能要用线段树,但是\(n^2\log n\)似乎过不了\(5000\)的数据,就没有写。

然后看第三题,暴力\(+\)链有\(55\)分,还算比较良心,决定先写二三两题暴力。

然后考虑优化第二题的\(dp\),一开始的想法是决策单调性或者单调队列,结果发现单调性不太有,而且决策集合的左右端点似乎不是单调增减的,也没办法单调队列,然后就放弃了。

这时候感觉第二题的线性做法可能不是\(dp\),于是决定贪心,尽可能分多的段,然后贪心地调整段边界的数字,结果两个大样例都过不去,于是就决定磕第一题了。

还是在想第一题的\(dp\)做法,想把方案和系数分开来处理,但是还是不太行,然后想了容斥,补集转换,感觉都不行,最后放弃了,敲了\(m^n\) \(dfs\)暴力。

感觉要退役了,竟然只写了三题暴力\(...\)

下午回学校,听大佬才发现第一题\(n=40\)的点可以直接\(dp\),然后我第三题的链又写挂了,没有注意到要\(dfs\),感觉彻底凉凉了。

最好情况下也就是\(\mathrm{Day1}\ 95+70+10=175\),\(\mathrm{Day2}\ 32+36+40=108\),合起来也没有\(300\),真的凉凉了,感觉不用学了。

赛后感悟

大概看完网上的民间题解之后发现其实问题还是出在\(\mathrm{Day2}\),\(\mathrm{Day1}\)反而没什么问题,\(175\)也就是我能拿的分数了,第二题尝试写了带撤销数组的正解写法,调了很久也没有调出来,也不是考场能写的题,唯一的遗憾就是\(T1\)少了\(5\)分。

然后最崩的还是\(\mathrm{Day2}\),第一次想了很久,\(dp\)早都想出来了,容斥和补集转换都想到过,竟然被自己\(pass\)掉了因为没注意到不合法方案至多只有一个菜不合法,然后就少了\(84\)分。再就是第二题没有想到\(dp\)降维,没有必要记录第二维状态,然后只要大胆猜测决策单调性就可以得到\(64-88\)不等的高分,这才是失分最多的题。

Day\(\infty\)

老师让我们写之后的安排,。

一定要好好搞组合计数和计数\(dp\),\(dp\)优化,以及\(\mathrm{ZROI}\)那种风格的思维题一定要多做,\(\mathrm{cf}\)的思维题也应该做做,再就是落实熟练高级数据结构吧。


05-11 22:45