NOI 2022 游记

· · 个人记录

NOI 2022 游记

首先特别鸣谢:垒球。

今年我还是把这张银子放在最前面,但是我希望我还有各位 efz oiers 尽量都金,不要银了!

前情提要:NOI 2021 金牌,CTS 没进前六,都是 rk10+。

NOI 2022 是我最后几场比赛之一了,虽然结果对我来说已经没有太大意义,但还是要认真备考。

从今年寒假的 CTS 结束之后一直到六七月这大约半年的时间,我学 OI 的时间只能说是很少,更是没怎么打过代码,一些时间被用来学点文化课(虽然也没什么用)和大学的数学。

二月至四月

CTS 结束之后就是开摆,那段时间摆的比较多的是空洞骑士(因为以撒在一月的时候就全成就了),但是空洞对我来说可重玩性也没那么高,所以几个月后我就不怎么玩了,主要打以撒。

从提交记录来看,开学那段时间我应该去过几次机房,记得当时好像说要做点 Ynoi 玩玩,然后就做了几道最简单的,可惜和大战 *3500 一样没有持续下来,退役之后有兴趣的话再写吧。

还有就是读了点集训队论文,因为 CTS 的时候发了纸质稿,所以之后就研读了一下,主要是戴老师的 DAG 技术,不过由于那段时间不想写代码,所以当时说要造的模板题后来也没造。

半年来的最早一场比赛应该是在四月,vp 了一下联合省选,由于很久都没怎么写过代码,加之遇到一场没有大样例的比赛,所以挂了一车分,本来接近 500 分的水平打出了 200+ 的成绩,于是在之后一段时间陆陆续续打各省省选的过程中,才在代码水平上找回点感觉。

五月

五月的主要内容是浙江,安徽和辽宁的三场省选。

浙江省选只能说是很有水平,感觉主要是 Day2 每题都很有水平,Day1 倒是比较容易。

后面两场省选我分别会三道题,分数是 360 和 340,应该说状态和代码水平比之前提升了一些,但是思维方面确实有了明显的退化。比如 LNOI 的 T3 是一个比较轻量级的组合数相关的推导,但是当时并没有推出来。

不过这两场省选有一些有意思的题,比如 AHOI 的 T4,我有一个比正解简单很多且快很多的做法(https://www.luogu.com.cn/blog/ix-35/solution-p8341 ),感觉做的过程中找到了一些 OI 的乐趣。

六月

摸。

值得一题的是读了一下 dengyaotriangle 论文,学会了单位蒙日矩阵乘法,还写了篇博客(https://www.luogu.com.cn/blog/ix-35/dan-wei-meng-ri-ju-zhen-sheng-fa )。学习的原因是 dengyaotriangle 往模拟赛里放毒。

其实那个区间 LIS 我后来写掉了,不过博客还没更新。

七月

原计划七月是 NOI 的,所以七月的时候开始正式进行了一些面向 NOI 的复健练习,主要就是打了一些联测,感觉没去年有水平了,去年 NOI 前打联测好像还时不时能踩踩 std 什么的。

不过也就是在这段时间收到了 NOI 延期的消息,于是时间又没有那么紧迫了。

就这样,原本七月的训练时间和八月的暑假生活直接对调。我在七月中旬的时候加了以撒竞速群,加之八月初就有比赛,所以那一两周里除了联测之外有很多时间都用来和群友打竞速。此外还看了挺多直播,除了以撒竞速之外还看了 HK 速通以及糖豆人之类的各种节目。

说到竞速,我其实有足够多的内容可以新写一篇博客,不过和 OI 无关,所以什么时候写以及写在哪里就不知道了!

总之,七月之后就要进入最后的备赛阶段了,不太能继续摸了。

插播

关于垒球的一些事实:

  1. ix35 是垒球。

  2. 垒球是中国垒球协会指定比赛用球,这里的比赛是不是指 NOI 2022 呢?

  3. Kubic 带上两个垒球可以在 ECF 打平 重生之我是菜狗。

  4. 从前人们认为天圆地方,但是近代人们发现地球更接近垒球的形状。

  5. 垒球本来没有颜色,垒球是橙色是因为垒球很狂暴,垒球狂暴是因为 Kubic 狂暴刷题。

  6. 从远处看,橘子很像垒球;从近处看,橘子也很像垒球。但是橘子不像垒球那样有弹性。

  7. 桌子上放着半杯水,乐观主义者看到杯子有一半是满的,悲观主义者看到杯子有一半是空的,垒球主义者看到杯子上正好可以卡住一个垒球。

八月

八月之前和之后训练状态的差别大概有多大呢?可以看看这张图:

实际上前几天没有提交是因为在别的 oj 上做题。

感觉 qoj 是一个非常厉害的 oj,有贼多的题目,不过好像没那么知名,我也是通过 pjudge 才了解到的。

loj 也非常不错,不过就是有一个问题,就是很卡!而且我还遇到了莫名其妙的问题,当使用某个特定网络上 loj 时无法登录或提交,非常迷惑,只好每次做 loj 题的时候都开热点。

下面就是为期二十天的从零开始(几乎)复健 OI 之路记录!中间有一些主要做模拟赛,或者不记得干什么的日子就跳过了。

8.1

第一天,主要是找了 pjudge 上最前面几场的一些题做。

PR1 的删数和守卫,删数没啥好说的,守卫感觉很有水平;EXPR1 的乘积,守卫 2 和下降,下降是 JOI 的一道题,非常困难,守卫 2 则依旧是很有水平。

此外,由于我开始复健,所以作为机房乐子人带动了机房文化的发展,创造了大家都很喜欢的垒球!

虽然我不是机房里水平最高的,也不是最魔怔的,但是很可能是最搞笑的!

光头杯开赛了,后面几天每天晚上都在看。

8.2

https://www.luogu.com.cn/blog/ix-35/post-82-post

为什么只有这一天写了博客呢?因为后面发现做的题有点杂,不太想整理。

8.4

随机到 qoj 上开了场 opencup,口胡。口胡完了就开始写,opencup 还是一如既往的有些很有水平的题。

https://www.luogu.com.cn/blog/ix-35/xxii-open-cup-named-after-ev-pankratiev-grand-prix-of-poland

8.6

UNR Day1。

由于我是内行,不能报名比赛,所以就在场外和选手同台竞技,并且可以看榜做题,随时准备指指点点!

T1 是个签到题,没啥好说的。

T2 是个水平很高的题,我愿称之为 UNR 最难题,为什么五个人类出题出不过一个 AI 呢?

T3 也是很高水平的题,不过感觉没有 T2 那么难,虽然我也不会就是了。

8.7

UNR Day2。

继续同台竞技,Day1 打得下饭,看看 Day2 能不能翻盘。

T1 是个高水平题,我之前好像看过题解,不过忘了咋做了(后来看了官方题解,感觉还是十分高妙!不过毕竟不如 D1T2)。

T2 也是趣味的题,不过没那么难,分成两个部分,每个部分都不是特别难想。

T3 原本在我印象里是 xtq 珍藏多月的专业防 AK 题,没想到被 kyj 用 DAG 剖分薄纱了!只能说是太有水平了。

Kubic 直接进行一个 UNR 的杀穿,我直接狂暴 orz Kubic。不过就在我狂暴 orz Kubic 的时候 Kubic 正在狂暴卷题,或许这就是我和神的差距吧!

8.8

光头杯结束!这届非常好看!

8.10

除了模拟赛之外,因为机房里有人正好在做字符串,所以这几天我也来做了一些之前没写过的字符串题。

8.11

vp IOI!其实是前一天晚上开始想的,看到 CHN 4 个 AK 觉得十分恐怖 orz。

然后自己做了之后发现,爆率真的很高!本来打算做一天的题,一个晚上就全会了。

https://www.luogu.com.cn/blog/ix-35/ioi-2022-day1-ti-xie

8.13

IOI Day2 环节!

Day2 感觉比较简单,大家纷纷 AK,不过想在 5h 内想完加写完也是很有难度的,不然 CHN 怎么会不是 4*600 呢。

就我自己来说,前一天晚上看题就想了大概 3h,然后白天写的时候又写了总共 3h 左右,所以要我去肯定是 AK 不了的。

IOI 什么时候变这么拉了。

https://www.luogu.com.cn/blog/ix-35/ioi-2022-day2-ti-xie-rui-ping

8.14

早上依旧是模拟赛,但是下午突发奇想,打了一下洛谷月赛!

不打不要紧,一打这个月赛,众人纷纷点评洛谷月赛大于 IOI!

赛时过了个 E,不过有点卡常,因为月赛太有水平,所以赛后还做了个 D!

https://www.luogu.com.cn/blog/ix-35/luo-gu-yue-sai-lgr-117-xuan-zuo

晚上有 AGC,和 Kubic 一起当赌狗!开场直接开 E!然后做了 1.5h 的 E 却没做出来,投降!

为什么这天我这么喜欢打感叹号呢!

插播

最近我研究了 Dev-c++ 的功能,并开创了半在线编程,也就是写代码时只能看见当前行的代码。

下面给大家推荐一些我常用的主题:

如果有人无聊到去翻我的提交记录的话,就会发现我的一些提交记录第一行有奇怪的注释,这就表示我是用哪种主题写的这段代码!

8.17

今天是联测喜剧演员 ix35 的最后一场表演。

非常郁闷的是,本可以 AK 的一场因为类欧板子不太会写所以没 AK。时常会有这样的情况,一道题虽然并不超纲但是可以用超纲方法迅速解决,这表明需要多打一些不在考纲里的板子。

看了下昨天的 CF,会到 E,感觉还行,看到 D 这种直球 Hall 定理或者 E 这种爆搜还是反应挺快的。

打了一些 LOJ 板子,由于今天的启发所以明天可能会打一下类欧还有 BM 这些稍微复杂点的。(最近在 LOJ 和 qoj 或者洛谷上的部分提交都是用的小号,感觉可能现在已经挺多人知道这个 id 了)

我感觉可能要转变一下心态,之前一段时间想的都是 NOI 要尽可能少的丢分,就是冲着过题去打。但是现在感觉自己有点菜,还是把打比赛理解为尽可能多拿分吧。毕竟在前段时间口胡和做的若干套题目里,能在 5 小时内 AK 的确实并不多。理论上来说,一个人 NOI 的表现还是主要取决于中档题的数量和类型,一场如果两道中档题,能同时 AC 的概率就是偏低的了。

8.19

打了很多数据结构板子,包括 LCT,吉老师线段树之类的,然后口胡了很多道题目。

值得一题的是,学了一下模拟费用流的一些东西,这个我之前都不太了解,只是某天去学校的时候读过 ckw 的论文。今天重新了解了一下,感觉理解更深了!顺便复习了下各种可反悔贪心,现在感觉很有水平!

还有一个有趣的事情,水群的时候 dottle 问要复习啥,我说单位蒙日乘,然后 127 也说了一模一样的话,于是当晚我就去把自己的蒙日乘板子看了一遍,不知道 NOI 能不能考一道能用蒙日乘直接秒的题。

8.20

NOI 开始!

来签到的时间很早,在签名墙上黄金位置写了 ix35 与垒球。

之后去看了点 slope trick 之类的东西,算是延续昨天的内容(都和凸性有点关系),看完之后想叫 kubic 跟我一起去大厅面基,结果他 LCT 调不出来,我就先跑了。

下去一看发现已经好多人来过了,见到了只有一个头的多头,然后就去找 hez 的人玩了。

和 hez 的人打了两把狼人杀。已经有半年没打过狼人杀了,不过这段时间看过一些节目,所以还是会玩一点。(虽然打的是石像鬼板子,但是好像跟没有石像鬼一样)

下午又去打狼人杀了,正好有人在打五门,我就也打了一把,二血爬楼梯结果过了,很有感觉。

晚上的文艺汇演上去打了把谁是卧底,希望能让更多的人认识垒球。

之后群里约了线上局,打了一把就散伙了,可惜的是邓老师鸽了。(这把袁神太会演了,狼队配置太高打不过)

图为文艺汇演,有私货。

8.21

上午就一个人在房间里听歌(最近一个月听的都是这个,已经听了八百遍了:https://www.bilibili.com/video/BV1LS4y1q7id )。

下午做完核酸听说有随机,去一看发现 wyl 和 wxw 在打随机 bingo,我是空洞萌新就只能在一旁指指点点。下午还打了狼人杀,多头也来了。

我们这层楼十分有趣,有人在宿舍打牌,还有一些人玩糖豆人,我进出宿舍好几次都看到 xtq 在公共区域打糖豆人。

晚上又是一个人自闭时间,不过由于以撒群里出现了神秘的竞速比赛,所以就去看比赛直播了。

8.22

有点害怕打了两条狼人杀结果明天不会 OI 了,所以拿出前两天的 ARC 做了一会,会了 ABCDE,F 感觉很难理解,然后被 jly 无情嘲讽。

后来到刷笔试网站上做了点题。

笔试,感觉是 AK 了,但没给分数。

今天没去狼人杀,一天基本上都在宿舍里,晚上去点了首歌,然后听了很久的 NOI 歌单。

Day 1:8.23

早上六点起床,很早就来到了赛场外面。排队的时候排在了第一个,是最早进去的。

8:00

开始看题,发现 T1 是一个萌萌题,想了两分钟会了。瞄了一眼 T2 和 T3,当时的评价是 T2 应该是一个简单题,T3 应该是一个青蛙题。

T1 选了一个很好写的做法,链表加线段树合并,写了十几分钟就写完了,过了大样例,随后就去看后面的题了。

8:20

开始看 T2,一开始看错题了,看了一会才看对题。

就很显然只有长度 \leq 5 的区间才有用,然后考虑到某个位置时与下一个位置关联的区间好像只有 9 个,然后就想到一个巨假的做法就是状压这 9 个区间选不选,然后前面加了几个石子。

然后过了一会突然发现这个同一种方案不同的操作方法会算多次,所以是错的,然后发现要状压就得状压 2^9,就变成 2^{512} 了,看上去有一点大。

10:00

不知不觉就过了一个多小时,然后还是在稳定产出假做法,最后发现所有真做法都是指数级的。

这个时候突然发现一个重要问题:我 DP 状态里记 k 也是错的,因为要统计的是加 k 个石子之前的方案,所以前面分析的都没啥用。但是后面也啥都不会,而且 T3 看上去不太可做,所以一直在 T2 浪费时间。

11:20

绷不住了开始写暴力,写了 15 分暴力然后打表也没看出啥东西来。

11:40

去看 T3 了,题面大概读了 5 分钟左右就懂了。一开始觉得 u=1 很简单,但是想了下发现好像挺复杂。

看了一下性质 A 也就是链,一开始觉得只要 ST 表就行,然后发现无法合并,但是猫树确实可以,然后马上写了个猫树。

之后想了一下 O(n^2),发现就是一个换根 DP,也写了一下。但是由于这个题目没有给 grader 源文件,所以极难调试,一个很简单的换根 DP 调了二十分钟。最后因为修修补补而导致操作数量十分膨胀,常数很大。

12:20

T3 过了暴力的样例,然后又回去看 T2,这个时候可能有点晕,没意识到 l_i=r_i 是不用 DP 套 DP 的,误以为也是 2^{512},于是就没写。后面半个小时畅想退役生活。

下午查分:

75+15+20=110,T1 挂分了。

其实刚出考场已经在准备退役事宜了(其实也没什么,反正又不是没进过),但是出来一听好像大家都不会 T2,就感觉很平衡。

不过算上 T2 没打的暴力,挂的分还是多了一点。不过我其实不是很慌,当天听到队线大概 140 上下,感觉 T2 正常打基本能翻。

和室友说的原话是翻盘概率 99.99%,虽然玩的是梗,但是我是认真的。

晚上又去杭二那边鬼混了。

8.24

早上解谜活动,不过我不太感兴趣。

在寝室里打了会以撒,大概八点半的时候准备出去看看,结果一出门看到一个北京队的老哥在打几何冲刺,然后我就把 glx 叫出来一起看,之后我也把电脑拿出来打几何冲刺!不过一年没玩了水平可想而知,打个 weekly 也感觉难点很多。

有人叫我去狼人杀,于是就去了,还拉上了 xtq(xtq 好像很喜欢下围棋)。

打了一把打到最后,突然被告知要去彩排开幕式,只好跑路了,那把听说 xtq 是石像鬼,感觉水平很高!

下午是开幕式(Day1 以后的开幕式有什么存在的必要吗),进行了一个选手代表发言。此外感觉无人机很震撼。

Day 2:8.25

经过 Day1.5 感觉整个人更乐了,试图把这种乐传递给其他人,希望其他人也明白翻盘概率 99.99% 的道理。

又是最早进场的。(下面时间可能不是特别准确,回忆的)

8:00

看题,感觉题目名称非常不妙。

T1 要我们挑战 NPC!但是看了五分钟感觉是究极水题,k\leq 5 貌似只要纯爆搜就能过题,只要不离谱到枚举全排列还不记忆化,应该肯定能过。

但是因为要翻盘!所以不急着写,先看看后面的题会不会。

T2 冒泡排序!实际上跟冒泡排序一点关系没有。看这个题第一反应是有点难度,不过看了下部分分好像非常充分,把特殊性质做差不多就有 80 分了。

8:10

开始想 T2,首先想的是 B 和 C 性质。但是想了一会没啥结果,感觉很复杂,于是决定先想 A。

很快就想到一个 A 的贪心,写了个暴力确认是对的,这样 A 就全会了。

然后就想怎么从 01 推广到任意数,那么一个很自然的想法就是对于每个阈值,小于的设成 0 其他的设成 1,对于每个阈值都最优化 01 的结果即可。

8:50

开始写上面那个推广。

写完之后发现 BC 性质都不对,然后才意识到问题:虽然这个 01 构造出来确实有单调性,但答案并不是每个阈值对应的答案相加,我求的实际上是 \sum \max(0,a_i-a_j) 而不是 \sum [a_i>a_j]

9:30

发现错之后就不敢继续写了,回去先把 T1 写了。

T1 究极好写,属实送分,而且没写挂,一遍就把所有样例过了,于是扔一边不管。

9:50

回来看 T2,发现之前的做法小样例就是错的,然后手膜了一下小样例,发现似乎我的做法有一半是对的,就是最小值填的位置。

然后就可以转化问题为:某些位置已经确定(区间最小值一定是尽量靠左的),剩下的一些位置有下界,然后要填数使得逆序对数最少。

首先考虑去掉下界,或者说考虑 B 这个部分分,发现如果某个位置填 x+1 比填 x 好当且仅当前面的 x+1 比后面的 x 多,这是一个单调的事情,所以可以说明填进去的数是单调不降的。

有了这个结论,就可以推测有下界的时候还是尽量维持这个单调不降的事实成立,也就是如果前后两个数都没取到下界,那肯定是前面小于等于后面。有了这个结论这题就是一个很简单的贪心,用线段树模拟一下即可。

10:50

开写!(前一个小时是在写一些简单的部分比如 B,C 性质的暴力,以检验正确性)

11:20

写完!

样例都过了。

然后去看 T3,一开始读错范围了,于是那个超级暴力好像跑不过任何点。

想了想性质 A,不过只推出来一个复杂度仿佛有很多 n 乘一个 q 的算法,根本没什么尝试的必要。

于是感觉暴力分就那十几分,考虑到今天必须翻盘,还不如检验一下前两题。因为第一题没最大样例,所以我造了几个,感觉跑得非常快,复杂度应该没问题。

11:50

开始写 T3 大暴力!爆搜估计能拿 13 分。

中间还改了一次写法,所以写了挺久。

12:30

摆烂!

没有意识到填 1,5 是没用的,不过其实是根本没去想。

12:56

为自己可能是最后一场的比赛倒计时 240 秒!

刚出考场时突然被告知今天要紧急疏散,可是我本来准备查完分和 kubic zght 打一晚上 80 分啊,只能说是很遗憾了。

去参加最后一次的狼人杀,wyj 也去了,不过第一天还没天亮突然被告知查分提前半小时(其实这局非常搞笑,第一晚死两个狼),然后就所有人一起 speedrun 了。

查分:

100+100+17=217,没挂分,反而多过了 T3 一个点。

感觉是翻盘成功了,后来和别人聊了一会,感觉应该挺真,真实的 99.99%,先开香槟吧!

看到 Kubic 博客(https://www.luogu.com.cn/blog/119621/noi-2022-you-ji )里的最后一段话,感觉真的十分感慨,当然不是 AK IOI 的部分,而是确实觉得时间太可怕了,不知不觉间我就要被时间给强制退役了。

在过去一年的某个时间点,我放弃了进入国家队的执念,但是我有了一个新的愿望,就是我的学弟要出国家队。我想将这个愿望寄托给 Kubic 或者是 glx 还有其他人,efz 的这届高一远比我们要强,希望他们是真的能 AK IOI 吧!我不久后就要离开 OI,但是这并没有什么恐怖的,一是我还可以以其他的形式存在于 OI 的社区中,二是 OI 也只是生活的一小部分而已。我的讲话中说 OI 是我们学习生活中很重要的一部分,但我相信不会有哪一个 OIer 是被 OI 所定义的。我在很多圈子中,我有很多曾经的和现在的热爱的东西,AFO 仅仅是象征我在一个做得比较成功的领域的淡出罢了。正如我在 NOI 结束后的第二天就准备开始学数学,准备开始打以撒竞速一样,这只是一个新的开始。

垒球一去不复返!

完结撒花!感谢陪伴!恭喜各位集训队!