NOI2023 游记

对于大部分OIer而言,能在短暂又漫长的竞赛生涯中参加一次神圣的NOI是一件无上光荣的事。记得省选Day1考完后,因审题问题而T1挂零的我在酒店里痛哭不止,那时我就说,能到NOI一游,我的OI生涯便无憾了。
历经四个月的摸爬滚打,凭借一张阴差阳错拿到的入场券,我带着残存的一点朝气、不多的脑子、要穿的衣服、一台电脑、两个老人机和一张身份证,千里迢迢来到位于中国四川的成都七中,只为给在OI战场上拼搏了四年的自己一个最后的交代。
开始的一周是成都七中组织的赛前集训。在场的四位湖北选手中,我成为了唯一一位连续七天一道题都没A的人,而其他人不仅能够稳定做出每天的T1,而且时不时能冲击高分。这再次加固了我对自己实力的认识,并坚定了我“来NOI就是来站好这班岗”的想法。
7月23日,NOI正式开幕。杜子德主席深情致辞,杰出校友送来祝福,少男少女翩跹起舞,川剧变脸令人叹为观止,无人机表演不敌去年,清澈歌声响彻回廊……但最让我惊喜的是开幕式结束时两侧走道上的学生志愿者向观众抛撒糖果雨的彩蛋。总的来说,这次开幕式精彩纷呈,是“40年来办得最好的一次”(引杜子德原话)。
领取试机赛密码条。
中午睡了个觉,居然睡着了,一直睡到去参加试机赛。试机赛题是NOIP2021,写了前两题,估摸着T3写不完,于是去写第四题暴力,差一点调完,并成为全场最后一个走的。期间考了笔试,满分通过;同时得知系统里加了一个很棒的软件叫做selfEval,给选手自测大样例用,可以有效避免freopen、MLE、TLE、CE等低级失误。
领取一试密码条,并得知评测机是世界领先的1024位超快评测机。
24日是第一试。很早就醒了,但不困。领食品和饮用水,进考场。不允许动键盘鼠标,于是观察了标有账户和密码的纸质试题带和面前黑黑的显示屏。由于没带表,当监考宣布比赛正式开始时感到有些突兀。笨拙地输入了账户和密码后,发现所有文件夹、子文件夹和大样例都建好了。点开pdf题面,观察时间空间限制。1s,0.5s,1s; 512MB,512MB,512MB。看来评测机确实很强。
开始读题。读完T1第一句话感觉要做一下标记,于是开始拆用很黏很黏的胶水黏着的试卷袋。啊,拆开了,里面是几页很薄很薄的淡黄色试卷。发现笔袋没拿进来,遂举手求助。很快过来一位学姐,给我原地画了个圈,让我不要动,她去给我找支笔。过了一会儿她回来了,说她跟我一起去拿我的笔。遂取笔袋而反。
开始审T1,做了几个标记,感觉不难,能够做出。于是拿起草稿纸,决策了一下是横着还是竖着打,最后决定横着打。打了两列,会了,用的是行间、列间去重后做简单容斥、扫描线。感觉可能码量较大。
开始审T2,做了几个标记,思考一会儿未果,感觉较难。遂查看部分分,会了第一档爆搜,在草稿纸上写下m=0输出1,m=1输出2n-1,m=2“平凡”。总共35分。
时间过去1小时。感觉得赶紧开写了,T3暂时不看。
开始写T1,写完,静态查错,开始编译运行,调试,发现斜线间也需要去重,改了几次能过除了最后一个样例之外的所有样例了,最后一个样例有1e9左右的偏差。调试未果,决定用对拍调试,遂写拍,写完时监考宣布考试过半,加快手速。一开始没拍出来,后来终于拍出来一组n,m<=10的挂掉的数据,还不错,一下就发现有一个离散化的位置多套了一层数组,改了就过了,继续拍,没拍出问题。
开始审T3,直接看部分分,发现一个基本容斥能过k<=6的36分,这样就有171了。比T2好写,先写了这个,过了样例。
开始写T2,先写了爆搜,过了样例,打了m=0,m=1,但m=2过不了样例,发现式子有问题。想了好久不知道,遂决定放弃。造了组数据,发现爆搜要跑3s,完蛋了。感觉不会写更不暴力的暴力,决定放弃暴力。但这样连160都没了,决定还是要拿到m=2的10分。决定拿式子跟暴力拍,但是没时间写拍了,于是构造了一个三个点的链,发现不一致。情况有35种,考试10分钟后结束,没时间看完啊。怎么办呢?随机选几行画画图吧。考试前3分钟终于发现一个漏掉的情况,发现少考虑了一个情况,加上就过掉了样例。用selfEval测试了三道题,发现都过了应该过的样例。
出考场,发现大家分都差不多,T2 k=0有35分部分分,猜结论就能过,有点离谱。
查分,100+35+36=171,一分没挂。T2暴力10分造的数据很水,0.3s就跑过去了。
晚上讲题,一车人过了k=0得了T2 70分,没有听懂正解。
受大运会影响,社会活动临时改为活力嘉年华,吃完早餐就发现操场上的工作人员在准备游戏设施。在寝室呆了一会儿后,九点钟时决定还是去参加一下。
来到操场,去领了一张游园卡,上面显示有八个项目:一个“眼疾手快”,一个“穿越火线”,一个射箭,一个保龄球,两个扔飞盘,一个高尔夫,还有一个忘了。粗略看了一下各个项目的规则和排队情况,去了离拿卡处最近的项目——“穿越火线”。游戏设施是一个末端套有直径一分米左右的铁圈的铁棍和固定在铁架上的一根设有许多障碍的极其弯曲的长铁杆。玩家需要手握铁棍,将铁圈从铁杆起点处小心地移到终点,期间铁圈一旦接触铁杆,就会触发电磁报警器,游戏失败。在排队等候的过程中,我观察了排在我之前的每位同学玩的过程,发现这个游戏通过率奇低,多数人都是在铁杆前段的形如---^v-----的v处挂掉了。轮到我了,我吸取前人经验,先是以较慢的速度通过了第一个向上尖角,再以更慢的速度调整铁圈朝向并试图降低到v的最低处。眼看要通过v了,但那根铁杆似乎有着强大的吸引力,还是吸引着铁圈擦了上去。“吧唧—吧唧—”,警报响起,虽然漫长的排队后只有这短暂的体验,但无奈我只能重新站到队尾,等待下一次机会。排队过程中我思考为什么两个尖角形状完全相同,但上尖角容易通过而下尖角难,得出的结论是,在通过下尖角时我们是俯视的,所以不容易对铁圈的下部和下尖角边缘之间的距离有直观的度量,而上尖角基本处于平视角度,自然只要小心就能通过了。据此我总结道,通过下尖角前要将铁圈朝向调整到完全竖直,然后让铁圈的最高点尽可能贴近拐角的内侧,这样可以最大化其下部与拐角尖端的距离,而转过最低点后也要避免手抖,逐渐抬高铁圈;后面部分的难度就小多了,只要慢慢来就行。到我了,我熟练地拿起铁棍,以稳定的速度移动着铁圈——“吧唧—吧唧—”——还未通过第一个尖角,我就不小心擦到了铁杆上,十多分钟的等待又白费了!虽然很不甘心,但只能离开了,我便决定去看看其他项目,毕竟还剩一个小时不到活动就要结束了。
“眼疾手快”是第一个吸引到我的项目:十根木棒对称分布在一个双臂铁架上,每隔几秒随机掉下一根,玩家需要接到至少4根木棒方可通关。这个项目对玩家的反应力要求挺高,木棒分居两侧的设计也让玩家更加目不暇接,不知道从哪边掉下来,但根据前面同学的通过率高达95%来看,应该不是一个很难的项目。我看到cqbr采用了一种非常有趣的策略:只面对左臂上的5根木棒,对右边掉下来木棒视而不见,这样可以保住一半的木棒,足以通过;而后来越来越多的人也开始采用这种“打满暴力”的策略。经过了漫长的等待,我信心满满地来到铁架前——看别人玩容易,真到自己时还是有点紧张啊……不一会儿,第一个木棒落下了,missed;第二个,missed;第三个,missed;紧急切换策略,对着左边打暴力;第四个,还是missed;第五个,missed……只剩两根了,再怎么说,一只手接一个,这两根总要保住吧……第九个,直接从我拳头里面滑下去了,missed!第十个,caught……看着工作人员一副生无可恋的表情,我接过没有盖通关印章的游园卡,半羞半恼还有点茫然若失地走开了。“很明显,”我对自己说,“在反应能力这块儿,咱就是迟钝一些啊!”
转了一遭后,决定还是再去玩一次“穿越火线”。这次感觉排了不一会儿就到我了,还是比较小心地开始移铁圈……通过了上尖角……下降、下降、再下降,旋转……居然通过了下尖角!后面部分一帆风顺,我居然通过了这个通过率最低的项目!有点恍惚,但似乎又明白了什么。上了这么久的学,灵活性方面,我向来弱些,真正能跟别人竞争的,不正是一份难得的耐心、坚持和细致吗?想到这儿,我又加深了对自己的认识,并感觉明天踏踏实实打满暴力,应该就能实现目标。
打欧拉回路板子。领二试密码条。
26日是第二试。很早就醒了,感觉怪怪的,可能因为是去打暴力的,所以有种像机器人的感觉。进考场,这回带了笔袋,不小心碰了桌上的鼠标线,导致黑黑的屏幕突然亮了,吓了一跳。过了一会儿又熄了,但愿没事。开考,开电子题面,看时限空限:只记得第二题1.5s;512MB,512MB,512MB。拆信封,读题。
审T1,做了几个标记,画了个图。在草稿纸上写下“后代到祖先:只能顺着树边走;祖先到后代:非树边-树链-非树边..交替;横叉两点先走到lca再用祖先到后代方法”。哦,那可以在lca处统计路径,这样就只需要知道每个点到某个儿子子树内所有点的最短路之和,要先预处理子树深度和。主要矛盾在于快速计算前者,怎么办呢,怎么办呢?……先判可达性?行不通……通过图的特殊形态用数据结构优化?贪心?树形DP?更加离谱……想了30分钟,未果,无奈看部分分。发现暴力有40分,加上特殊性质,有55分。M<=100开始以为会,后来写的时候发现假了。
审T2,一开始没看到R(),第二遍读题看到了,于是得到一个n^2log的SA做法,不太能冲过4000的36pts暴力;发现既然是暴力那不如O(n)次O(n)的Z函数,这样就有暴力分了。随机什么的特殊性质都不会。看T3,暴力都不会呀!特殊性质也不会。
时间已经过去1.5h,要开始写了啊,先写…T1暴力吧。遂得40pts。再写T2暴力,遂得76pts。再写T1特殊性质,遂得91pts。由于T1在写一开始想假后来不会的m<=100浪费了一些时间,T2调Z函数用了一些时间,暴力打完仅剩下一个小时了。给部分分们写了拍子(呵呵),没拍出问题来(呵呵)。重看T3,暴力还是不会,决定给特殊性质写一个合并果子骗分,过不了n=50样例。想不到更好的方法,遂放弃。用selfEval做了最后一次全体评测,大概没问题。考试结束,出场,报告情况,考得最差,意料之中。吃饭。看群消息。查分,一分没挂(T3没分,意料之中)。看猫和老鼠。吃饭。看猫和老鼠。睡觉。睡不着。起来写退役记。睡觉。醒。赖床。去吃饭。饭冷了。去听“我与NOI”演讲和文艺汇演(《孤勇者》和《蜂鸟》好评,云南选手演讲好评)。吃饭。收拾行李。出校。出蓉。略。

为期数日的NOI之行到此就告一段落了,为期四年的OI生涯到此也便歪歪扭扭地画上了一个句号。早在26日晚上就得知了银牌线407、金牌线509的消息,小小的内心中却没激起一丝波澜。失落当然是有的,毕竟加上d2t1的45分就到银线了,不过无论如何,愿赌服输。昨天早上试着想了一下d2t1正解,发现我的思路走向没问题,只是没有意识到求各点到儿子子树各点最短路那里暴力dij复杂度是对的,是依赖于满二叉树子树和O(N)的性质——和去年d2t1一样的“暴力就行”的思路。这种带一点反常规意思的思维题很好地区分下来像我这样思维不够灵活的选手,不过发现自己的问题之后还是挺开心的。
总而言之,我的OI生涯也算是有憾无悔吧。这次NOI我改掉了不对拍的坏毛病,在做题的各个环节也变得更加仔细,三场考试算下来我一分没挂,也算是一个不错的进步了。被OI折磨了这么久,到了该告别的时候了,竟还是有一丢丢的不舍。还记得初二疫情期间和大家一起挑战LOJ分块九题时那种纯粹的快乐,记得自己当初还是绿勾时为了筹备一场梦想中的公开赛绞尽脑汁出的一堆富有创意的NP问题,记得打UR#24时以为自己要成全榜第八时的惊喜,记得“两个抵三”打GDCPC时的情景,记得飞往PKUSC2023途中改编毛诗以壮行的激情澎湃……多年以后,面对一行屏幕上的C++代码,彭同志兴许会忆起这些微不足道的点滴……
Farewell, OI!
慢走不送。

pengyule
Jul 28, 2023

posted @ 2023-07-28 22:02  pengyule  阅读(350)  评论(0编辑  收藏  举报