阶段总结(至 2022.12.31)

发布时间 2023-10-15 16:26:42作者: Natori

这是一篇阶段性总结,OI 浓度很高,间杂 2020~2022的部分比赛游记。

0 前言

\({\color{White}{动工于 2022.11.4}}\)

明天你是否会想起,昨天未调完的题。

此后你是否还惦记,考场写挂的暴力。

同行的日子都远去,我们也终将退役。

多年后谁会再想起,定格考场的记忆。

几个月之前在洛谷某用户的主页上看到了这首小诗,当时挺有感触的。

考完提高组更是这样:T1 暴搜写挂,T2 写了两个特殊性质但由于时间问题没有写一般情况的暴力,T4 不会倍增 LCA,于是算下来一共丢了 \(30+\) 分。

这样一来,提高的分就只有两位数,接下来整个赛季也就肯定没戏了。

回家的车上一直在想:OI 究竟带给我了些什么?真的像父母之前说的那样,只是一个爱好吗?

后来想到了很多,记在这里,就当是作结了。

OI?

\({\color{White}{动工于 2022.11.4}}\)

读小学的时候报了一个机器人兴趣班(是单片机,还花了几千块钱买器材)。机器人需要自己组装,然后给它输入指令。还记得那款编辑器的大概操作方法:从屏幕左边拖出来一堆五颜六色的方块(指令模块),然后接到 start 块下面,再外接上机器人,点 OK 传入指令,拔线,打开开关,机器人就会执行所输入的命令。

然后去了两次比赛。第一次电脑出 bug,于是直接寄掉。第二次稳定发挥拿了第二,金奖。

比赛完了之后老师跟家长建议去学编程语言,因为单片机的模块化编程对思维的锻炼程度不高。于是就报了一个 python 兴趣班。学 python 就学了些语法,然后模拟了愤怒的小鸟和 PVZ 的几个画面,在编程班上展示,效果还挺好。

五升六的暑假(2019年)编程老师建议我去学竞赛,理由是“思维很好”,于是转入了 C++班。

CSP 2020

\({\color{White}{动工于 2022.11.25}}\)

六年级一开学去听了几节 C++ 课,老师很好。

第一节课讲了 C++ 的程序模板(就是头文件、namespacemain 之类的东西),还讲了五种基本运算符及其应用甚至还铺垫了二分。那节课听下来感觉很行,于是后面就一直坚持。

大概 2020 年 3 月开始讲算法。首先讲的是高精度,加减乘理解起来都很容易,然而除法一直没有完整地实现,导致到现在都不会高精度除法。

那时疫情刚爆发,全国都在上网课,我也染上了打游戏(mrzh)的毛病,以至于后来疫情好转,我得以去线下培训点,却还在上课时打游戏,老师断了网还玩单机的。这导致我没好好听 DP,于是模拟赛的成绩都不好。不过当时整个班上都是这样的氛围,好像大家都认为时间还多的是,OI 也不过是一场可以重开的游戏。

进入暑假,换了个教练,我也要为 CSP 2020 冲刺了。新教练管得严一些,我也认真听了初赛的知识点,模拟赛成绩也逐渐上升。

终于到了九月,我来到了 CSP 2020-J1 的考场——教科院附中。同校的 tyd 和 zxy 也在那里,于是相互加油打气。

然后就进了考场开始考试,具体的细节不记得了,只觉得题特别难,第三道阅读程序完全读不懂。考完之后出来一问,tyd 和 zxy 也考得不好,过不了初赛,但我比他们的估分还要低。

九月底出了成绩,60.5,这个数字我永远也忘不了。不过这点分在那个机构竞赛班上居然是最高分,而且是唯一一个 60 以上的。也是很无语

CSP 2021

\({\color{White}{动工于 2022.11.29}}\)

感觉机构的竞赛班非常的菜,于是加入了学校的信竞队。这时,初一的我学 OI 也更认真。

十月底进行了一次模拟赛,非常的寄,只有 T2 得了 40 分。最离谱的是,T3 打表没输出空格,1 2 3 4 \(\rightarrow\) 1234,0 分。。。然后就被教练约谈了,说 T1 那么简单怎么都不会。

后来继续学,讲了快速幂、gcd 之类的东西,然后十一月底又来一次模拟赛,内容大多和数学相关。这次发挥还行,260 分,T1 快速幂板子和 T3 挂了点分。T3 是因为没特判 1 的情况,然后又是多测,于是挂了 30pts。

不过这次下来就有信心了,进入寒假。每天就是在家和学校之间往返。

七年级下期文化课成绩有点下滑,但 OI 的水平在上升。

然后进入暑假,学校进不去,只能去教练家里。

有一场模拟赛本来 240,但是 T2 和 T3 都开大了空间导致 MLE,于是只有 100,T1 是做过的原题。于是痛失去七中林荫的机会。

接下来又用一个机构的场地上课,每天做一套普及组真题,刷题量也在这个时候急剧增加,最后几乎把普及组所有题都做了,甚至尝试了一些提高组的题。这期间注册了洛谷。

开学后马上就是 CSP-J1 2021。感觉提很难,尤其是那个字符串,于是发挥不好,64 分。但最后的分数线是 62.5,所以卡线进了 第二轮。好友 lsb 第一轮真的考了 62.5,这是真的卡线。

接下来每天回家都卷 OI,都是些提高组和远古省选的真题。但有一个问题是很多题我都没有经过深思熟虑,就比如打开一道题,会就开写,不会就直接看题解,看题解很多时候也似懂非懂的,代码就对着题解写有抄题解的嫌疑。这样做题效果很小,因为等价于追求数量,自身水平并没有多大提升。

但当时我自我感觉良好,也自我感觉良好地上了 CSP-J2 2021 的考场。

然后顺理成章地寄了。

T1 先写了个 70 分的暴力,然后一看数据 \(10^9\),然后就赶快优化。瞄了一眼左边老哥,发现他用了二分?!不知道是什么神秘做法,但感觉是错的。自己非常智障地用减法而不是用取模缩小范围,配合乱搞,测了一下极限数据还挺快。当时根本不懂什么是对拍,于是就扔掉开 T2。

T2 读完题死都没理解为什么“我们不能将其视为相同的元素”,于是写了个 \(\mathcal{O}(n^2 \log n)\) 的暴力,开T3。

T3 是字符串大模拟?我记得我考前就觉得自己大模拟不行,然后就跳到 T4。

T4 一眼链表,但是写的链表一跑就死循环、RE,很崩溃。然后考虑其他做法,但死都没往用 prevnext 存下标,于是又寄了。

此时大概剩一小时,回头疯狂冲 T3。大概剩半小时的时候写完了代码,测样例却一直过不去。把输出 ERR 的原因调出来看,也没看出个所以然来,更加崩溃。

再看一眼 T2,还是没明白,最后瞪着“我们不能将其视为相同的元素”结束了考试。

出场一问 zxy 考的相当好,在回家的车上就哭了起来。不过回家还是决定继续学,2022 年再冲一下。

把 T1 按考场上的思路重新写出来,然后交到洛谷上册民间数据,发现挂成了 70?很慌,感觉二等不保。

周一回学校教练说我 T3 把头文件写错了,我的评价是在那种精神状态下写对才离谱。然后教练评价了一句:本来有王者的水平,但打出来只有青铜。不是我也没王者的水平啊

当天中午去机房看题解。

T1 是送分题,有个 \(\mathcal{O}(1)\) 的做法,太菜没想到。

T2 居然要用到那个“操作一次数不超过 5000”?!而且我考场上没发现 \(n \le 8000\),属实离谱。

T3 看了一眼题解代码,发现自己把合法字符串的 . 数量给数错了,于是把 3 打成了 4,当然可能还有一些其他的错误,比如没开 long long

T4 确实是类似链表的东西,只不过前驱和后继存的是下标,而且复杂度是 \(\mathcal{O}(n)\),其实也算个模拟题。当然还有一个用队列的题解,但是实现的代码可以被卡到 \(\mathcal{O}(n \sqrt{n})\)

又去看 T2 题解区,发现还有人用平衡树!膜拜神犇。

从洛谷上找了一些题,下定决心冲 CSP 2022。

出分了,80+12+0+0=92,三等。

CSP 2022

\({\color{White}{动工于 2023.7.14}}\)

年底学了一道 WC 2021 的数论题(洛谷 P7325 斐波那契),由于既不懂逆元也不懂 std::map,就似懂非懂的,于是现学了 std::map 的用法,很高兴。

寒假就没去学校里学了,自己在家里找些题做。除夕下午和晚上在洛谷打了两场公开赛,下午的题难,有点寄,晚上的可以猜很多结论,于是拿到了 190 分、113名。虽然还有许多不足(比如 E 题每次求前缀和都要 \(\mathcal{O}(n)\) 求,事实上可以动态更新),但自己对自己还是比较满意的。

八年级下期是个神奇的学期。

报名参加了三月下旬的 NOI Online,入门和提高都报了。甚至很重视这种比赛,考前刷了很多题。

上午提高,和 zxy 和 zjr 开 QQ 会议一起打。

T1 就给整不会了,大概理解的是有若干个二元组,求区间最长上升子序列长度。这个区间询问就很离谱,但当时没有写部分分的意识,于是看 T2。

然而 T2 更神秘,题都看不懂,马上开 T3。

T3 好像可以写暴力,开个 __in128 至少能得 10 分,于是开写。

写完就不知道干什么了,于是乎:

mrzh,启动!!!

到洛谷去问三道题的大概解法。T1 是主席树或倍增,当时并不知道主席树是个什么科技。T2 是神秘哈希,T3 也是一个叫二维偏序的科技。一题不会很正常。

下午入门,依然是三人组。

开 T1,发现是简单题,马上切掉。

T2 是个神秘数论题,我和 zjr 先想,zxy 自告奋勇去想 T3 的 DP。

T2 想了很久,尝试了各种方法,但始终过不了大样例。期间 T1 出题人说样例给错了,不满足题面中给定的特殊性质,但我用原来的代码跑新样例,发现还是对的,就没管了。所以那个特殊性质到底有什么用

三个人一起想 T2,但最后也没做出来。考试结束后 zjr 转发了别人的一张图,是 T2 的草稿,大家真 · 恍然大悟。

第二周到机房补了入门组的后两题,感觉受益匪浅。

出分,提高组 T3 因为一些奇怪的原因爆零,于是总分爆零,入门组 100+0+0=100,没进全国前 25%。

四月排练班会小品,五月又要排练艺术节班级展演,中午只能抽空去机房。

展演甚至在 5.20,于是 kzh 给 dry 老哥表白了间接促成 5.21 zxq 的举动

期间看了一下各省的省选,感觉都很神秘。学了一下 ZJOI day1T1 的那个容斥,很厉害的样子。

八下期末考试,因为众所周知的原因掉出了年级前十,愉快的暑假开始力!

做各种水题,打各种 Rated 比赛,然后补各种题。

又开学力!

今年同时报了入门和提高,入门要一雪前耻提高随缘

初赛比较顺利,但是上午入门组考了牛顿迭代等神秘科技。感觉下午提高组最后一个大题难度还行,第二大题蒙对了一个 4 分的。 /oh

经典咏流传:

for(int i=0;i<n;i*=2)

初赛出分力!J 78,S 65。lsb S 72 orz。

开始备战复赛。打了几场普及和提高的模拟赛,然而成绩都不咋地,算是为正赛攒 rp 吧。

期间有入学考和 10 月月考,都输麻力!

复赛前一天 Ynoi 首 A,顺便复习 st 表。后面要考

2022.10.29,复赛,启动!

上午是 J 组。

8:30 发题,写完缺省源解压文件,突然忘了代码应该放在哪里。举手问监考老师,得到的回答却是“你考前本应该仔细看过”。完力,要 boom 0 力!

然后看到有个 D:\csp,那没事了。

8:33 开题,T1 是个快速幂板子,加点判断就行,很快就过了样例。自己造点数据也没问题,大约 10 min 丢掉了。但是没测两个 1e9 的情况,后面要考

T2 在草稿纸上写了一下,发现就是一个二元一次方程组,只不过需要判断整数解。不到 10 min 过了大样例。

此时大约 9:00,已经有 200 分,赢麻力!

T3:你好。

看 T3,半天没懂怎么判断“短路”,也没看到送的那 20 分,boom 0 滚粗。

心态有点慌,准备全力冲 T4。

一上来先秒了 \(m=0\) 的 40 分:按横纵坐标排序后求最长上升子段长度,由于有两维所以不能直接 \(\mathcal{O}(n)\) 做,所以我写了一个 \(\mathcal{O}(n^2)\) 的 DP,并通过了样例 3。

接着考虑 \(k \not= 0\) 的情况,还是先排序。由于无法表示加了多少点,所以将其加入状态:\(dp_{i,a}\) 表示强制选第 \(i\) 个点,加了 \(a\) 个点时最长上升点列的长度。转移没有问题,但是死活过不了样例 4,猜测可能是转移假了,但赛后发现不优的转移一定会被舍去,所以转移是对的。

手造的几组小的样例,发现都是对的,于是回头看 T3。发现还是不会,chrome://dino/,启动!

考场上把小恐龙玩到 2300+ 时考试结束了,出场感觉 1= 很稳。

到酒店自测 T1,发现在两个 1e9 的情况下,由于一些神秘原因会输出 0,很慌,但已经没有用了。

下午 S 组随缘!

T1 看了一下感觉不是很会,甚至不会 \(k=0\),索性放弃。

T2 很有感觉。大概分类讨论一下,对 \(a,b\) 分别维护最小值和最大值,就可以通过特殊性质 \(1,2\),获得 65 分。实际上可以拓展一下, 从而 \(\mathcal{O}(n^2 \log n)\) 解决 4、5、11 和 12 号测试点,多得 20 分,但考场上没想着这么做,因为 4 个 st 表已经写吐了。

T3 看半天读不懂题,直接开 T4。以为是个神秘数据结构题,但是一眼做掉 \(k=1\) 的部分分。然而考场上忘了倍增 LCA 怎么写了,8 分滚粗。/ll

回头冲 T1 的 \(k=0\),写了一个假的记忆化搜索,复杂度自己都不知道。然后一直过不了样例 2,自闭力。

在 T1 卡了 2 h 之后考试还剩约 0.5 h,发现 T3 样例输出基本都是 NO,于是“不可以,总司令”。但是把 NO 写成 No 力!喜提 0 分。

突然发现 T2 有错,开始疯狂改 T2 的 st 表。剩下 5 min 时终于改好了,下次还是直接上线段树吧。。。

考试结束,出场时听到有人说 T4 是动态 DP,怎么净考我不会的。

回家发现 J 组 T4 是因为最后统计答案时没有考虑剩下没有加入的点可以放到整个点列后面,考场降智系列,但是感觉其实是受了 \(k=0\) 部分分的影响。

半期考试时出分力!J 90+100+0+70=260,没想到 T4 竟然有 70!S 0+65+0+8=73,算是一分没挂。但听说 T3 直接总司令有 45 分,wdnmd CCF。

S 组一等线异常地高,195,合着一堆人场切 2 题是吧。

感觉 S 组还是有比较多的遗憾的。T2 能再拿 20,T3 能拿 45,T4 能再拿 8,如果会用 Floyed 做 \(n \le 200\) 可以再多拿 20。这样一共可以多拿 93,所以还是要巩固基础,而且要多观察部分分。