SNOI2020退役记
Day -?
学校停电了。
感觉心里非常平静。
CSP-S,我,和我们高二的oiers们,满腹壮志。有的希望拿到自己期盼已久的省一,然后安心退役,
而我们A层的几位,更是渴望在CSP-S拿到高分,早早在省选中取得优势。
现实真的很骨感。100+10+0+12+32+55,甚至差点没拿到省一。而我,也只是我们灾难般的表现的冰山一角。
除了jy大佬依然稳健,除高三以外rk1,我们都是清一色的200分左右,堆积在省一的末端。
我真的不敢想象,我们的教练背着我们流了多少眼泪。那天,是她的生日。
那天下午,我们所有高二oier高唱《明天会更好》,我偷偷地抹了眼泪。
从此,我没有队友了。
从那以后,机房里就只剩下了我和jy,集训队大佬。虽然我们从初二开始就是同学,但和他一起打模拟赛,
真的是既快乐又痛苦。
有他在,我的所有疑惑都能迎刃而解,因此我的提升也非常快。
但是,看着他一次次甩开第二名一百多分,而我只能打三个暴力,拿那一点可怜的部分分,总感觉缺少一个
和我的水平相当的人。
进入正题
Day -4
老师请来了上届的银牌大佬fc,让他给我传授一些“灵气”。受到灵气的我赶紧狂摸水杯留住它。
毕竟,这一年实在是太衰了。CSP爆炸,集训爆炸,WC取消,CTS,APIO取消。我已经失去了太多,
省选是我唯一的机会了。
Day 0
早上和jy一起复习了一些省选知识点,结果越复习越自闭。。
高斯消元不会写?(EX)CRT不会?矩阵树没听过?STL也不会用。。
我这是去丢人的吧
下午jy回家休息了,我和zsw看了看联考A的题,搞了一整,结果旁边的高一学弟瞄了一眼,“线段树二分”?
真是自闭。就我这,明天还要比别人至少多100分。。唉。。
Day1 Round1
真是奇怪。。晚上睡得格外好。可能觉得自己退役已经稳了,所以也不怎么紧张。
早上7点半就进考场了。开始试机。
先打开devc++5.9.2。wtf?没有编译器?于是只好打开4.9.9.2版本。
心态有点爆炸。。没有c++11,bits编译不过。。还没有自动括号补全。。
大概7点50左右发密码了。
生成树+取石子+区间和。
先看T1。让找一个删一条边之后是个仙人掌的图的生成树个数。
完了。点双我是忘得一干二净。。退役了退役了。
考前fc跟我说一定要坚信自己能做出来T1。但这题我是真的一点思路都没有。
打了个50分暴力就滚粗了。
看T2。SN怎么老出博弈论呀?k,n<=1e18,看起来像是道找规律题。
然后看了看数据范围,发现我连10分暴力都不会。又手推了推k=1,感觉毫无规律。
凉的一逼。
然后去看T3。数据结构题。区间取max,最大子段和。
有点GSS的风格?心里一凉:这莫非是某道我没做过的原题?
没办法,还是赶紧推吧,毕竟只有三个半小时。
发现n<=2000和单点修改都非常好做。所以用最快的“龟速”码了个线段树。都是没有括号补全的锅
调好了一些奇奇怪怪的错误后,一个假的\(n^2logn\)做法就写好了。怎么着也有45分吧。
然后满意地回去想T2。
推了一会,发现可以求一个\(a[i]\)表示有\(i\)个石子时最少需要多少石子才能获胜。
然后写了个\(O(n^3)\)的东西。之后发现可以\(O(n^2)\)求。然后又惊喜地发现a[i]大多不会很大,
所以复杂度近似\(O(n)\)。感觉不错,就码了出来,然后写了前三个部分分:第二个离线+权值线段树,
第一、三个就直接询问就行了。
写完这些东西基本上就10点半了。剩下的时间,我一直在刚T2,发现a[i]有点fibonacci的性质,
但又不知道咋用。
最后预估50+50+45滚粗。
中午
刚出考场,就听到有声音说“T3好简单”,“T1就。。。。做”之类的东西。甚至高一的dl说自己写了T2正解,
T3也写了正解,不过没调出来。
看来Round1是挂惨了,只能靠R2翻盘了。
中午躺在酒店的床上,简单地回顾了一下自己的两年多的oi生涯,感叹造化弄人。
搞了两年,最后只能在省内兜圈。。纵使有万千不甘,又有什么用呢?
突然想起来早上一个对拍也没写 非常慌,之前写GSS从来没一次AC过。说不定就全没了。。
还是睡觉吧。
Round2
下午被门卫拦在门外,直到30多才到考场。
进去后赶紧学着装了一下编译器,虽然还是不能用c++11和bits,但至少能括号补全了。(事实证明,这太关键了。)
50左右发题。
字符串+排列+水池。
记得上周fc说过,“得D2T1者得省选”。所以我怀着忐忑不安的心情看T1。
读完题--这不是sa裸题吗?和"品酒大会"那道题有点像。先建好sa,height,然后按height由大到小合并并查集就行了。
然后简单证了证,发现这样贪心没啥问题。
我上周才给高一的讲了字符串,这就可以学以致用了?心里一阵狂喜。。
飞速码完了T1,写了个对拍,查出几个傻逼错误后,就稳稳地拍上了。
才过去不到一小时。赶紧看T2。
有一个前\(m\)位已经确定的\(1\)到\(n\)的排列,求值域连续的区间最多的排列,输出该最大值与该排列。
这都什么神仙题嘛。。除了\(n<=10\)的大爆搜,其他的根本不会。
又稍微想了想,\(k<=1\)和\(k=n\)貌似可做,然后稍微猜了猜结论,很快写了\(k<=1\)。
然后\(k=n\)不会做(太菜了),就写了个假的线段树暴力。
然后去看T3。先看到需要可持久化,不难想到把操作看做一棵树,然后把询问挂在节点上。
注意到无1操作有40分。也就是说只需要维护两棵可持久化线段树,0操作就是线段树二分+区间取max,
2操作就是单点修改,3就是单点询问。似乎没什么难度。
用最快的手速写了200+行,然后稍微调了调,样例没啥问题。
然后看第一个部分分。\(n<=500\)?那\(q\)呢?不会是2e5吧。。
已经4点半了,有点子慌。
这时候监考员突然说这题的subtask1是\(n,q<=500\)。。
于是直接在原题上码了暴力,然后把代码粘到另一个cpp上,然后对拍。
看到一个个“找不到差异”滑过,感觉挺稳。
出去上了个厕所,回来定睛一看--我TM怎么在拿两个完全一样的暴力对拍!!!
简直sb到了极点。之后不断查出错误,我把标记下传换成了标记永久化,但也许是题写得少,总是调不对。
最后实在没办法,100+30+10滚粗。
评测&结果
我们高一高二6人在XGDFZ闲逛。然后还打了一小时左右乒乓球(好浪呀)。反正都要退役了,不如最后玩一玩,
明天就要收拾书本,回归课堂了。
大概6点40大汗淋漓地回到考场。
一看成绩。。我竟然进队了?还是A队?
看了看具体分值。R1拿了40+50+100。T3的假做法竟然AC了?最后是全场rank3,只比rank1低了10分。
R2最后是100+20+10。本以为很凉,结果竟然能排到rank4。最后,CSP全省20名开外的我,竟然挤进了SN的A队?
jy虽然同样只做出来两道题,但集训队选手是真的稳。zsw的R1T1挂成了10分,R2T1也没有切掉,但也拿到了rk9,
除掉E类选手后,刚好压线进队。
高一的三位选手大概能排到SN的rk16左右,也还行,毕竟还有一年多的时间。
XGDFZ还是一如既往地强势,揽下5个省队名额;tyz就有点惨了,只进了1个。
总结
今年的SNOI堪称是史上最难,听说std写了30k。。。当然,题目质量还是蛮好的(就是我太菜了)
R2T1真的太关键了。切了这道题的人都进了A队。
真的感觉如梦如醉。高二这一年,我经历了太多的失败,遭受了太多质疑和打击,自己也一度失去信心。
但我坚持到了这一刻,退役失败!
也许我从来不是夜空中最闪亮的星,我也不是什么盖世英雄,I just wanna fight with everyone else,
我只想一路迈向远方,捍卫我的,我们2021届竞赛的,以及我的JDFZ的荣耀。
记得考完CSP后,我写了这么一首诗:语文功底过于薄弱
单车道行雨击面,风扫叶落割脸脉。壮志凌云赴考去,心灰意冷归还来。拳拳信仰岂可摇?漫漫蜀道难割爱。会当卧薪图再起,笑对千磨与万碍。
现在,CSP这个铰链已经破碎,阳光明媚。尽管以我目前的水平,与NOI还有些距离,但,我还有时间。
2020年6月21日