SDOI2019二轮 正式退役记

转眼间就从一轮结束来到了二轮。

Day0

下午坐火车从青岛来到济南。可能是比去年考得早的缘故吧,今年的济南没有像去年那样热的令人难受却好多地方不给开空调。下了火车赶往考试地点,还是去年考试的地方,还是在编程兔。排队签到抽了考号,是18号。去试机的时候发现和lyf挨着,这似乎是第一次我在OI正式考试中与熟人挨着呢。曾经听学长说挨着的话如果水平差不多,可以两个人按照同样的进度看题做题,据那位学长所说,他当年和另一个人这样一起进队了。于是还有一点小期待。然而事实是,我水平还是比lyf差多了啊。

晚上叫了外卖,写了点板子,胡乱翻了翻空间,祝福一下同学们,也自己发了一条考前说说。看了会手机,听了会歌,就睡觉去了。感觉盖着被有点热,不盖被又有点冷,翻来覆去好久才睡着。

Day1

早上7点起床,吃了点早饭就去考试去了。

考试时间是5个小时,早上8点考到下午1点。大家都说高二去参加考试的心态会和高一不一样,其实对于我来说,有些一样的地方,也有些不一样的。一样的地方在于,我一轮的失常发挥已经让我几乎提前丧失了进队的希望,甚至争取D类都希望渺茫,毕竟还有学校名额限制。于是在这种情况下,和去年差不多,都是进队无望的心态。但是还是有一些不一样的地方,今年的我已经是OI界的老年选手了,参加过的大小比赛也算不少了,算是一个成熟的选手了,这次作为很可能退役前的最后一战,有着特别的意义。并且今年水平确实比去年高了很多,还是带着一些翻盘的期待的。

开始看题。T1像是个数据结构,T2是个计数类的dp,T3是一眼看上去不太容易直接看出可能的算法的题,感觉有点像个LCT题?

先开始想T1。想了一会儿,发现50分可以用一个线段树来暴力搞,这些操作都是线段树可以维护的。但是这个读入方式有点奇怪,决定先写一个暴力,看看读入有没有理解错。暴力写的也不短,能有一百多行吧,写完之后发现,明明有好多询问,为什么只输出了一个数。我一直以为是自己在真正的操作对应标准操作的时候对应错了,结果发现,是只输出所有询问得到的答案之和。这样暴力就过了样例。于是开始写线段树。大约写到9:15,我写完了两百多行的线段树,中途想到了好几个细节,倒是很顺利,一遍过掉了样例。然而一轮花式翻车的经历告诉我,一定要认真检查。在OI中比较有效的检查方法是对拍,我正好又写了暴力,于是就开始对拍。前后拍了好几种大小、类型的数据,都没有出问题,于是就先不管第一题了,先去看剩下两个题。

开始看T2。一看就是dp题,于是开始考虑设计状态和转移。设了好几种状态,中间也想了好多种想法,但是似乎都不太能做,甚至部分分都不会。我一开始想先dp完第一行,然后再dp第二行。后来想能不能两行一起dp。两行一起dp有想了好几种可能可行的dp式子。但是最终都会因为有一些东西很难记录出当前这个格子在某些情况下究竟有多少种可行的颜色,于是还是转移不了。最终还是不会做。决定先去看T3。

T3发现起码有送的部分分。首先有10分直接对于每次询问暴力跑最小生成树就可以了。然后再看其他的点,发现n=1的话,本身就已经是一棵树了,我们对这个结构做一个边的前缀和,每次用前缀和和那一条连接1和m的边算一下答案就可以了。这样又有10分。又去想了想其他部分分,没有什么进展。总感觉T3可能是个LCT或者分治,但是学得不好,毫无头绪。

又回来继续想T1。想到了维护一个整体中大多数的值是多少,有多少个这样的值。对于单独修改过的那些位置单独维护。但是在处理同一个位置被多次单独修改的时候出现了问题,因为没想好怎么计算或者维护这个位置在相邻两次操作之间的变化。想过能不能用一个标记的前缀和之类的来记录,我以为是不能的,然而事实上是能的,于是就这么与正解擦肩而过。

后面的时间又是看一会儿某个题,没有进展,又换一个题继续想,还是没有进展。到了还有不到半个小时的时候,我想到T1可以拿一个平衡树单独维护所有被单独修改过的地方,于是可以做到空间复杂度与n无关,只与q有关。但是这样复杂度还是带log的,一般现在还是不认为1e7带平衡树的log在2到3秒的时间能跑出来的。再加上可能写这样一个平衡树时间也不太够了,就没去写。

最后出考场的时候,期望得分是50+0+20。实际得分是0+0+20,又一次全省倒数。说实话,有点懵逼。感觉T1我能想到的能做到的都做了,都过对拍了怎么还是不对啊,感觉好多可能的细节我都注意了,但是还是没有拿到分。而且听说T1只要敢写的几乎都过了,写那种平衡树做法的也A了,用那个前缀和维护标记的也A了。好像确实是个简单题,这种题过不了活该退役。

由于一些奇怪的原因搬到了一个远一些的酒店,吃完午饭回来几乎已经讲评快讲完了。

Wucstdio Day1 SD rank1,学校其他人大多数考得不错,基本都在全省并列第七的样子,不过似乎liuzhangfeiabc有点崩啊。而我似乎已经提前出局了,甚至没有了翻盘的理论可能性了。

下午随便看了看手机,时而发呆,脑子还是有点空白,死活想不明白究竟T1是为什么挂了,也想不明白为什么我每次都会期望得分最高的题挂掉,仿佛上天在不断地和我开这种我开不起的玩笑一样。感觉我平时也不是那种经常挂题的吧,会挂题但是也没有这么夸张啊。

晚上随便吃了点,提前把知乎的备注改成了退役OIer,又打了点模板,就睡觉去了。

Day2

既然自己已经没有进队的希望了,我就完全是来享受比赛的,尽力拿我能拿到的分,争取考一个好一点的名次,为自己正名吧。

先看了一下三个题。T1不知道是什么题,一眼看上去有点看不出来,T2又是一个计数,T3是一个看起来在规律基础上做的题。

按照惯例还是先去想T1。想了一会儿发现,我们让这个式子的p和q在另一个不变的基础上,自己变大,一点情况会变优。而求p和求q的过程看上去没有什么联系,中途又说保证一定有解,我就想着如何分别求出最大值,并且在求这个最大值的过程中求出具体方案。

首先是去想第一问怎么求。感觉这个东西像是有二分性,考虑了半天,不知道这个二分到底对不对,但是感觉上挺对的。于是在二分的时候就是找度数比二分的答案大的点,如果一个点周围能用的点不够,就把它删掉,然后看会不会因此它周围的一些点也因此变得不够。然后就这个东西,我写了n遍,一直过不了对拍,最终调了好久,在10:30左右终于是过了第一问的对拍了。然后搞第二问。第二问一看是一个一般图的最大独立集,想了想好像不是很可做啊。我怎么记着这好像不是个可做的问题啊?但是能出出来,可能我记错了吧。毫无思路,于是开始胡乱贪心。想了一个看起来就不怎么对的贪心,结果发现连第二个小样例都过不了,最终结果special judge之后能对,但是第二问的答案没有求出最优答案。一直在想怎么求,然而连个多项式时间能保证正确性的做法都没有,能保证正确性的只会指数级算法。最后想不出什么好办法,就先用这个明显不对的贪心了,先去看下一个题去了。

T2的话是个dp+博弈的题。上来好像想起来是个阶梯博弈,但是我忘了阶梯博弈的相关结论和性质了。在考场上尝试回忆,猜了几个都不太对,然后尝试设dp方程也没设出来,因为结论不对,没法转移。感觉有点不好,这个题在胡乱推式子和猜结论,最终什么正确的东西都没搞出来,还耽误了不少时间。

看了看T3,感觉似乎要先打表找规律,然而时间不少很多了,我也不是很擅长找规律,不如先去保证T1有分再说,决定先去想一个第二问更靠谱的方法。又想了好久,还是没有什么正确的算法,不过突然想到了加上一点随机化乱搞。我的随机姿势不太对,不太删除搞随机的题,再加上贪心的问题有点大,虽然对于样例能随机出来正确的第二问答案了,但是对于很多数据还是没法随机出解,就算大幅度加大随机次数并且对于一组数据多次运行随机程序还是无法得到正确结果,本质问题应该还是贪心策略出现了很大的问题。

快没有时间了,写好了文件之后就开始发呆,开始回忆OI生涯的片段。感慨了一下自己这么快就退役了,而且是以失败告终,甚至是屡次失利。而且感觉最后一场考试甚至还要爆零,突然感觉有点凄惨。

中午随便吃了点饭,回来听讲评。发现zyb、rqy、stl等人240并列rank1,然后好多人用奇奇怪怪的方法A掉了T1。自己T1竟然在subtask的情况下还有40分?有点懵逼。发现自己贪心时用的set导致后面的点T掉了几个,小数据范围的点错了两个,但是数据范围更大的竟然还对了好几个。反正翻盘无望,起码还是有分的,而且起码是我两年以来省选名次最靠前的一天了。也可见我之前省选每一天打的有多差了。虽说今年二轮得分门槛比去年低了好多,但是起码达成了来的时候的一个目标——二轮得分,并且每天都得分了。

由于不用参加什么面试,改签了一班早一点的火车,早早地回青岛了。

最后恭喜ckw成为SD队长!恭喜lyf、zyb、stl成功进队!恭喜stl达成清华省队无条件最优惠约!

再见,OI。你好,文化课。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 7
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值