NOIP 2022 游记

· · 个人记录

【chen_zhe】NOIP 2022 游记集合帖:http://www.luogu.com.cn/discuss/536978

考虑到这次可能是我人生中倒数第二次,或者最后一次参加NOIP了,看到那么多大佬都喜欢写游记,那我也来记录一下在酒店隔离期间以及打NOIP时的经历吧。写得跟日记一样,写打NOIP时的占比并不高。其中 \small\boxed{\text{Day 1}} ~ \small\boxed{\text{Day 5}} 是在酒店隔离期间,重点在比赛当天 \small\boxed{\text{Day 6}} 。写着玩玩,文笔不是很好,不喜勿喷

\fcolorbox{black}{#eee}{Day -1}\small\texttt{ Nov.19th \color{#888}(Sat)}

之前一直在等待着关于NOIP将如何进行的通知,由于河南疫情一直很严重,我以为会延期进行了呢。万万没想到,就在今天下午,收到了通知,让后天就去酒店隔离,竟然要隔离五天,还得让辅导老师陪同(太突然了)。不过这样也有好处,防止万一考试当天被隔离在家,而且是上网课,不用担心到酒店上不了课。又得麻烦我的班主任郭老师了!

\fcolorbox{black}{#eee}{Day 0}\small\texttt{ Nov.20th \color{#888}(Sun)}

凌晨我就直接去做医院做核酸了,害怕结果出得太晚,而且做的是单检,害怕同管出阳性。这么谨慎,生怕出一点问题,我就可能会失去参赛资格了。

下午又要求全员做核酸,对于我来说这并不是一件好事,因为很有可能导致小区或单元被封。因此,我和郭老师约定好明天一大早就出发,这样在一定程度上可以减少被封到家出不来的几率。

\fcolorbox{black}{#efe}{Day 1}\small\texttt{ Nov.21st \color{#0a0}(Mon)}

六点多一点儿,我就坐上郭老师的车了,然后一起吃了个早饭,就上路了。上高速后不久,第一节数学课就上课了,我把直播开开了。要说我平时精力都挺旺盛的,一般坐车上观望沿途风景就不会困,上数学课听老师讲课也不会困。但是我在车上听数学老师说了几句话之后,就有点想睡觉了。当她开始讲题时,我眼就快睁不开了,于是一闭眼一睁眼,一节数学课就过去了,也快该下高速了。可能是我起得太早了吧……

不到九点就到酒店了,接下来就是平常的一天。酒店环境确实不错,饭是送上来的,吃着挺好的,比家里做的好吃多了。虽然房间里只有我一个人,但是我丝毫没有感觉到孤独。酒店的占地面积和建筑面积都很大,里面绿化做得也非常好。可是我们不能出去。那就在房间里好好呆着吧,同时希望疫情能早日得到缓解。

温馨提示: \small\boxed{\text{Day 2}} ~ \small\boxed{\text{Day 4}} 我们每天都举行了一场NOIP赛前模拟赛,没参加的话可直接跳过这一部分。话说我为什么要花这么多笔墨用在写考前的模拟赛呢?

\fcolorbox{black}{#efe}{Day 2}\small\texttt{ Nov.22nd \color{#0a0}(Tue)}

接到早饭时我人都傻了,这么多,让我怎么吃完?可能是因为我在家早饭都吃得太草率了吧。

接着我就直接看模拟赛试题了。果然是NOIP信心赛,难度确实不大。现在的题目果然都越来越二次元了……其实这样挺好的。T1难度我感觉可能连普及都不到吧,花了不到半个小时就A了。T2我不想多想了,直接暴力枚举,然而1pt也没拿到,又是因为没注意到细节。T3的话,我也是没有准备拿全分,于是先写了个能得30pts的程序。后来看还有时间,我就又想了中贪心方法想再拿30pts,然而没拿到。贪心确实有风险,有时候会是错的。可是因为我没有数据来检验,现造的话太麻烦了。T4竟然是ikun又得用dp……本蒟蒻实在不会dp啊,救命!

排行出来时,还好,第12名,不算太拉,虽然一共才四十多个人参加。这确实稍稍给予了我一点信心吧……我看了看Phigure这位大哥的代码,不应该啊,咋会才得了70pts呢?点开他T1程序一看,首先映入我眼帘的一行代码:

char sta[114514];

果然,No zuo no die,本来能拿满分的程序被他这一行整的一半都RE了,原因:数组太臭……

奇怪的是,今天的午饭怎么给了两份?是怕不够我吃吗?一点多,我就换到新的房间了,至于为啥我也不知道,但环境更好了。

\fcolorbox{black}{#efe}{Day 3}\small\texttt{ Nov.23rd \color{#0a0}(Wed)}

我满怀信心地打开了题目pdf文件。浅浅地读了一遍题,完蛋,一道也不会,寄了!那也不能白白浪费一上午呀。算了,赖好写写吧。

首先,T1虽然大眼一看没啥思路,不过我在尝试样例的过程中,发现了一些规律。于是我就凭着我找到的规律去写了,写了快三个小时,中间出了很多bug,直到最后我也不能保证我的算法的准确性。算了,就这样吧。对于T1我是期待得40pts的。

还有半个多小时的时间,再看看T2吧,这一看都是能用“记忆化”打表完成的,于是话不多说我就直接开干了。写完生成程序后,让它跑了10分钟左右,快没时间了,就让它把前10^{4}个数给打了。

至于T3,T4,我认为那都已经超过我的能力范围了。不看了。

排行出来后,哇,我花快三个小时写的程序爆0了!不过这里我没有用“竟然”一词,因为我当时就感觉确实有可能爆0。还不如暴搜能拿10pts呢。T2符合预期,得了20pts。早知道应该先写T2了,然后挂机跑生成程序,说不定能多拿10~20pts呢。决策失误。

令我感到震撼的是,我才得了20pts,竟然能排到榜8?!我再一看,也就只有25人参赛,还有10人喜提0pt……看来不光我觉得难,估计很多人看太难了就放弃了吧,当然更有可能的是我太蒻了。Phigure这位大哥,拿了100pts并获取了榜1的位置,恭喜!

下午我去问他T1咋写了,因为题解写了跟没写一样。后来我才知道,其实我的思路没有大问题,只是少考虑了一种情况。如果不是多组数据的话,我就应该能得点分了。本来我想再修改一下我提交的程序,但是当我打开我上午写的程序后,发现连我自己写的程序都看不懂了。他也说了,代码确实不好写,这跟我感觉一样。

上体育课(相当于自习课)的时候,我找不到我的手表了,找了半个多小时也没找着。我感觉有可能是忘到原来的房间了,因为我睡觉、洗澡的时候都会摘下手表放到旁边,而且它很小,很容易在收拾东西的时候忽略了。于是我就给前台打电话,然后上去找了,找了半天还没找到。算了,还是先回去吧。结果我在吃晚饭的时候,发现手表在枕头底下压着……我到底啥时候才能改掉丢三落四的习惯啊!

\fcolorbox{black}{#efe}{Day 4}\small\texttt{ Nov.24th \color{#0a0}(Thu)}

可算解封了。早上可以去餐厅吃饭了,下午做核酸的时候也可以出去了。不过话说郑州的疫情似乎不容乐观,好像又有十几个考生由于疫情无法参赛了。我也能感受到那些努力了一年却失去了一次展示自我水平的机会的那些OIer的痛苦,不仅限于我们河南。希望他们能够抓住明年的机会吧。

下完早读我就和郭老师一块儿去食堂了。食堂非常大,里面的菜很丰富,口感也挺不错的。不过我习惯早餐简单地解决了,我也没有弄太多的菜。

接下来就开始打模拟赛了。今天的题是真的简单啊,相比于昨天的简单十倍左右(毫不夸张),跟普及组的难度相似。

T1签到,简单模拟。可能是我脑抽了,看到 1≤n≤25 就想打表,即使我知道这完全没必要。在做T2的时候没有仔细研究“数列严格递增”想表达的含义是什么,而且看到数据范围后,发现暴力就可以70pts,所以就没多想,直接上暴力了。可能是我太容易知足了吧,认为T3拿个60pts就行了,于是用前缀和跑过了60\%的数据。T4的话,题目看上去很复杂,所以我没仔细读题,不知道难度如何。

排行榜出来的时候,我找了半天没找到我的名字。原来都排到第22名了。为啥T2爆0了?而且是全TLE。我不李姐!今天题目确实简单,竟然有一位大哥AK全场了,还有8位不低于300pts。

下午我看了下提交记录。T2我提交了3次,第一次得了符合预期的70pts,后两次都全T了。因为我在提交第二次的时候发现要用文件读写,第一次提交的时候还写着用标准输入输出,所以我加了个freopen。但为什么全T了呢?相比于第一次提交,除了文件之外我就多加了个#define int long long。那也不应该导致全T呀,第一个测试点才 n=k=10 ,再low的算法也不会T呀。估计问题还是出在读写上,初步怀疑是评测系统的问题。要再加上70pts,我就能排到榜10了。

做核酸的时候,我和郭老师找了半天去大厅的路。酒店太大了,因为我们没有直接从大厅来到目前的房间过,所以自然而然很难找到出去的路。于是我和他像dfs一样寻找大厅。最后花了快10分钟的时间才出去。幸好酒店的路不是树,而是有环的无向连通图……

做完核酸回来,英语课已经上课5分钟了。我还没换鞋呢,刚进直播间英语老师就在找人提问,还刚好提问住我。我也不敢挂断,就接听了,可是我都不知道他们在干啥。于是我接听完以后把麦关了,摄像头还开开,装着说几句话,然后在面板上问“听不到吗?”……这可能是我在网课期间干过最孬的一件事了吧……

\fcolorbox{black}{#efe}{Day 5}\small\texttt{ Nov.25th \color{#0a0}(Fri)}

感觉今天一天都好摆呀,没有模拟赛就突然不知道要干啥了。不过实际上我也没有因为快该NOIP了而感到很慌。

上午做了一道非常简单的(橙)题,想再复习一下vector的相关函数。做着做着突然发现,vector的用法我都快忘完了。主要因为是我平时不怎么经常用vector吧。然后我就返回我的个人主页,再看看都有哪些。我跟被单词一样,半天才记住其中的一部分。剩下时间好像都在摆吧……

下午有个同学给我发过来了一张2018刑侦科推理试题的图片。之前我做过甚至出过这类题,感觉挺有意思的,但没有这个这么复杂。我想了想,反正也没啥事干,写个枚举的程序来解答这道题试试吧。因为10道题,每题4个选项,也就只需要试 4^{10}×10=10485760 次,不到1s就能算完。虽然我知道,这已经和推理没有半毛钱的关系了。只当是复习复习吧……

也就写了一个小时左右的程序就搞定了(可能还没有别的推理大佬推理得快),算出来的确实是正解。实际上这一点难度都没,稍微了解算法的应该都知道,枚举肯定是最暴力的而且写着最简单的,可是为啥我的同学知道我会写代码都感觉我很厉害呢……我感觉我已经够菜的了,像代码这种东西,无论是什么语言,本质上不都是语言吗,所以只要会说话,而且稍微学一学编程,像这种简单的枚举都应该是会编的吧。总感觉那些没学过编程的对咱们OIer有什么误解,不知道在读的各位大佬都有这种感觉没……

温馨提示: 以上都在瞎扯。以下内容才是本文的重点。

\fcolorbox{black}{#fee}{Day 6}\small\texttt{ Nov.26th \color{#a00}(Sat, the day of NOIP)}

时间过得好快呀,一眨眼前5天在酒店隔离的时间就过去了。我定的闹钟是\texttt{06:22},不过我\texttt{05:55}就起来了,一起来就想到该参加NOIP了,我就挺兴奋的。平时这时我就会选择再小睡一会,但是今天我属实睡不着了,就起来了。

\texttt{06:45}就去食堂吃饭了,然后做了个核酸,\texttt{07:20}左右就坐上大巴车了。车上坐的满满的,没有留下一个空座位,也没有一个人站着。

车开了好长时间,感觉有十几分钟。到达考点后,我带上准考证、身份证、学籍证明、几支水笔、一块巧克力、一个口罩就进考场了,大概\texttt{08:05}\texttt{08:15}的时候我们就可以动电脑了,下载完试题后,先写个如下的程序,再复制了几份:(话说每个人不都是这样做的吗

#include<bits/stdc++.h>
using namespace std;

int main(){
//  freopen(".in","r",stdin);
//  freopen(".out","w",stdout);
    ios::sync_with_stdio(0);
    cin.tie(0);cout.tie(0);

    return 0;
} 
$\texttt{09:00}$写到向右侧枚举时,我发现这样太浪费时间了,很多点都会被重复枚举。当时我想出了一种方法——~~头顶~~标数法,真的很神奇,这个灵感确实是突然出现的,说不出来为啥。大概原理和我第一次想的思路差不多,只不过预处理每个点,把每列都从右往左按照1,2,3,4……这样依次标数,遇到坑时就标0。以第二个样例为例,标出来的数如下(X代表是坑,标0): ``` 4 3 2 1 X 1 1 X X 3 2 1 3 2 1 X X 1 1 X 4 3 2 1 1 X X 3 2 1 6 5 4 3 2 1 ``` 这样就可以避免重复枚举每段横着的线段的长度了。$\texttt{08:40}$左右写完T1,测试完所有样例均正确。但我认为样例有点水,最大的样例才```114 514```(我很好奇这组数据是谁出的,真人才),而且都仅有一组数据。我知道我的方法不是正解,不能得满分,因为这个算法的时间复杂度主要取决于图中“0”的数量,一旦出现连着很长一溜的“0”,我的这种方法就寄了。所以预计本题得分取值范围为$[68,80]$。即使这样我也已经很开心了,我实在想不出更优的算法了。 接着看T2。题倒是看懂了,就是有亿点难编。需要考虑的情况太多了,脑容量有限,实在得不了全分。我写了一会儿,把前三个测试点搞定了(但不知道是否会超时),期望得分为$15$,因为$k=2n-2$就很好写,直接最多下面一排上面一排,再让一个栈保持空的就行了。 大概$\texttt{10:40}$写完上述程序。然后我浅浅地看了看T3和T4。第一遍看完给我的感性认知就是:好难呀!我本来还想暴力得点分呢,后来想想还是算了,估计1分也得不了。于是就又想把T2的4~6测试点也搞定。可是我当时脑子非常蒙。把巧克力吃了以后,状态稍微好了一点。即使这样,我写了半天也没写出来。就这样,剩下的两个小时感觉都浪费了。~~太菜了~~ 预期得分:$[68,80]+[0,15]=[68,95]$,其中最大可能为$83pts$。 $\texttt{13:00}$比赛结束后,别人给我说T3T4暴力能得点分。但是我不确定我能写出来不能。在回去的车程上,简直跟来的时候完全两样,讨论声此起彼伏。然而我仍然保持沉默,静静地听别人讨论。$\texttt{13:30}$成功抵达酒店,吃完饭后,$\texttt{14:10}$左右坐上郭老师的车,撤退。 比赛结束后我没那么激动了,因为感觉考的不怎样,T2能得$15pts$不能仍然是个问号。郭老师说今年的题比去年的难,这点跟我感觉一样。去年NOIP我得了$82pts$,2=,今年也是冲着1=而来的。可是我感觉不行了,我给郭老师说可能从分数上看,还不如去年。不过我已经尽力了,应该发挥出我的真实水平了。 $\texttt{16:10}$左右就安全抵达我的小区了,可是还被封着。又麻烦了半天才算回到家。没过一会,洛谷上的T1民间数据就有了。我跑了一发,上面显示的是$80pts$。还好,没出大问题。这已经是我对T1的最大期望了。 --- ### $\fcolorbox{black}{#eee}{Day 7}\small\texttt{ Nov.27th \color{#888}(Sun)}

一早起来,看到洛谷的T2T3的民间数据出了,跑了发T2。出乎意料的是,竟然35pts!通过的测试点除了1~3之外,还有7~10!神奇!

按照洛谷估分,总分是80+35+0+0=115分,超出预期。

\fcolorbox{black}{#eee}{Day 114514}\small\texttt{ Dec.6th \color{#888}(Tue)}

分数出来力!100+25+0+0=125分!严重超出预期!

T1的数据造的有点水了,让我这种O(n^2m)都过了,只能说太水了,不过这对我来说挺好的。

考场出来时,我感觉很可能比去年分数还低。这个分数确实出乎我的意料,很大程度上都是因为运气很好吧,众所周知运气 \not \subset 实力~

希望由于疫情没有参赛的OIer们能够放平心态,在明年的NOIP中取得好成绩,也希望那些由于细小错误导致大问题的OIer们能够下次细心一点,同时祝好AFOer!

附上我的考场代码(很蒻):

没写

没写