前言

CSP的初赛为什么这么TM的难。

高二最后一年OI,放手一搏!!!

初赛

考前日常失眠,习惯了┑( ̄Д  ̄)┍。

考试当天8:00坐车,提前一小时到达教室,好TM大的教室。

甚至还没有老师。

考前注意到了好像没有AB卷,这么离谱,缺经费了?

考试的时候才发现没有带表,失策了。

考试的时候监考官说的话也没有听清,又失策了。

甚至在发完卷子后才叫我们把书包上交,这次轮到监考官失策了。(这么搞就不怕有人作弊,还有初中生和小学生的人数变多了呢)

刚发下卷子一看,前面选择题挺简单的,甚至还有原题,感觉稳了,但是第一道题考 Linux 常识有点伤,他考 Windows 我都不一定会,还 Linux 的,但是我知道 cd 是进入,ls 说不定是 list 列表的意思,三个中选了一个,赛后发现对了。

当看到阅读程序时,开始觉得不对劲了,为什么考球体的体积方程,还好不是完善程序,如果是,这场初赛估计直接爆炸,虽然最后一个 else 没看懂,但是因为代码给出来了,直接硬算就行了,还不算太难。

第二道字符串,十分神奇,想了好一会才发现第二部分是压缩,第一部分是解压,想明白后做出来还挺快的,但是我忘记了一个二进制末尾可以有一串 0 的情况,给我的分数造成了不小的打击,这道题目的最后一道选择题也是在最后十五分钟回头做做出来的,中途忘记了 0 的 ASCII 码,但突然想起了快读中打的 c^48 ,然后有惊无险的暴力模拟了出来。

第三道题求最大连续子序列,惯性思维以为两个都是 nlogn ,结果太自信导致了错误。

完善程序一年比一年阴间,以前的题目你看到题干会做了之后,只要按着自己的想法去对答案差不多就能做出来,这次不行了,你还要去看他给出来的是什么NM思路才可以,甚至最后一道题直接现场学算法,考了一个 $O(n)$ 的静态RMQ,我直接裂开,唯一会这个的大佬退役了QAQ,但是当场就看懂了,真好,还行,但是最后一个选择题我以为他在地下停车场,我在天台,考后才发现他在月球的地下停车场。(同机房的神仙 $CLB$ 当场手推了笛卡尔树,难道看柯南和福尔摩斯的Oier都这么神吗,比我这个只看宅区和二次元的臭鱼烂虾强多了)

车上在聊卷子,同机房神仙 $ZWQ$ 不会笛卡尔树,最后一道题靠看代码硬推,不过还是没能现场推出笛卡尔树(虽然我觉得他随便过初赛,毕竟其他题目对他应该没有难度),有一说一,虽然 $ZWQ$ 智商是真的离谱,但是要论推理,有时候 $CLB$ 才是真神,$CLB$ 十分自信,估分 $80+$ ,我没敢估,我TMD原本想草草 RUSH 一遍,然后最后检查,结果只剩十几分钟,所以我对我的分数十分不自信,毕竟草草做的谁有把握啊。(貌似只有我最拉)

赛后回家,晚上无聊对了答案,估分 85 分,十分神奇的事情是我十分自信能对的题目占了我错的题目的大半,但是我没自信对的题目几乎都对了,AZ,估计进复赛了,颓废!!!(估计 $CLB$ 最高)

当然,初赛最大的收获就是多学了个算法,就离谱。

复赛

赛前,一直在玩《我就是太阳》、《看花眼了吗》,上头了,虽然不怎么影响状态。策划,加强一下李信

不怎么紧张,反正有分就能进,只要不打错文件名什么的,暴力都能拿到分。

进考场了,先咪了一会,让我紧张的不是比赛,而是我认为的机房最强的神仙ZWQ就坐在我右后方,让我十分紧张毕竟我好胜心比较强,难道有人会愿意在做题的时候看着周围的人AK完后翘着二郎腿在扫雷吗?

开始比赛了,输密码,突然血压高了!!!

什么垃圾键盘,艹,按下去一点感觉都没有,反馈差的一逼,SB东西。

当然,还好有多桌面,我习惯一个桌面看题,一个桌面想题。我甚至没有发现没有计算器

开始看第一道题,看了好一会的题意,什么国内飞机国外飞机,什么牛马。
看完之后,突然发现貌似每次飞机都停编号最小的那个飞机场不会影响最多停的飞机数,这就说明不管多少个飞机场,每个飞机停到的飞机场编号是固定的,要么不停,那么直接前缀和处理即可。但说句实话,感觉还是有点不对,当时还畏畏缩缩了一会,但是后面感觉有点合理,还是打了

半个小时内切掉第一题。

开始看第二道题,加 $$ 做个屁,先优先考虑没有 $$ 的,突然发现加了 $*$ 只要多一个数组维护即可,显然 $n^3$ 做法。

赛后才突然想起来n^3超一亿了,但是没有关系,常数小,跑不满,少爷机

细节稍微有点多,在一个小时十分钟切掉第二题,状态十分不错。看样子是得到了太阳之力和中二之力

看第三道题,感觉不是很可做,看第四题,这不是个最小割吗,但是会超时,不过约束很多,应该要转成 DP 或者是贪心,但是不会,模拟网络流又不太可能,算了,先跳了,先思考第三题吧,仔细思考,突然发现因为每次放一个数字后另一个只能最后在放,所以合法方案中间一定会凝成一个区间,每次在区间左右扩即可。

但是突然又感觉不是很对,如果都可以扩的话,先扩左边和先扩右边有区别吗?直觉告诉我没有区别,但是我还是要证明一下,然后又花了十几二十分钟,搞出一个还行的证明:

如果两次卡住,假设中间区间的大小相同(如果不同也类似证明):

一个左边扔了 $l1$ 个,右边扔了 $r1$ 个,另外一个 $l2,r2$ 。

假设 $l1<l2$ ,那么 $l1+1$ 的位置一定在第一个区间的左右,矛盾,证毕。(大概就这个意思,差不多感性理解,后面写题解再详细说)

然后开打,细节挺多,但是还是两个小时十分钟的时候写出来了。

开始想最后一道题。

这个Dinic怎么可能优化的了啊!!!

有个边权 $log$ 的优化,可以把做法优化到 $Tn^4\log{c}$ 。

当时以为是 $Tn^3\log{c}$ ,想了个证明但是事实证明想错了,估计能多骗点分,而且代码难打,剩一个小时就开打了。

结果还是没调出来(╯‵□′)╯︵┻━┻,我可悲的代码实现能力啊。

确实没有想到对偶问题

最好能 $300+$ 吧,最后洛谷 335 ,还不错。

不过最后题目我确实做不出来。

如果这场比赛广东有超过 $8$ 人AK估计我就可以宣告退役了。