2025 NOIP 赛前日记

说明

2024 NOIP 赛前日记 之后,又开始了 \(2025\text{ NOIP}\) 赛前日记。

主要记录每天的学习情况,以便自我督促。

此日记记录了 \(2025.10.19 \sim 2025.11.29\) 每一天的经历。

\(2025.10.19\)

停课前最后一个晚上。

提前跟班主任沟通过了,返校之后回班收拾了一下就去机房了。

晚上把国庆的比赛补了 \(3\) 题,其余不记得了。

\(\text{upd}\):由于是 \(20\) 号才开始写日记,所以 \(19\) 号的事情没怎么记录。

\(2025.10.20\)

周一,早上算是高中以来起的最晚的一次了,买完早饭回班了一趟,收拾了点东西。

\(06:42\) 到机房正好开门,那很巧了。

上午打了比赛,就不写了,直接贴总结(貌似机构比赛,无原题):

预估:[60, 100] + [30, 50] + 10 + 0 = [100, 160]
实际:100 + 30 + 10 + 5 = 145
感觉 A 题稍难,样例解释有问题导致看了好久才读懂题意。
具体的博弈过程没搞太明白,证明没证,快 8 点写完这题过了大样例。
B 题期望题意比较好理解,刚开始 n<=5 的数据直接用全排列写的,可以过 30pts。
但一直卡在优化推公式那里,一种思路是把 val 值相等的贡献拆出来,但貌似公式不太能推。
其他思路也没怎么想出来,不过暴力倒是优化了一下,就是直接 dfs 到最小的 i 之后后面随便放,贡献是 i。
用这个 dfs 跑出来了 1~17 的答案,最后几个实在跑不出来了,但 4~5 的测试点是 n <= 20。
没招了。看 C 题,首先蒙了一个分解的方式,手模了好几个数都符合,于是就不证了。
刚开始写的每组数据暴力求一下,不过时间复杂度有点太高了,于是搞了个预处理就很快了。
勉强拿到 10pts 吧,后面想了 r-l+1 <= 1e5 的点,但没想出来,感觉不能从暴力优化得来。
D 题就不说了,题目倒是能看懂,但没一点思路。

下午补了 \(\text{BC}\) 题,又做了点其他题,看了点文章,就这些吧。

晚上打了 \(\text{Codeforces Round 1059 (Div. 3)}\),就切了 \(5\) 题,前面卡太久了,后面没时间就摆了。

\(\text{upd}\):第一天大概是没摸鱼的,很难得。

\(2025.10.21\)

一觉睡到 \(06:30\),很爽了。睡足七个半小时。

上午依旧比赛(luogu-10095luogu-10099luogu-10100luogu-10097):

预估:100+55+43+0=198
实际:100+43+43+20=206
这场 A 题比较简单,没消耗很多时间,大概 13 分钟过掉。
B 题一看就是 DP,但状压一直没想到好的方法,于是先写了 m=2 的特殊性质。
后面也写了“A 中没有超过 5 的元素”这个特殊性质,但思路太麻烦了,没写出来。
C 题感觉也不太难,先写了 O(n^2) 的预处理做法,能过掉 37pts。
然后看了“a_i 的值严格递增”这个,模了几个数据感觉可以推公式,稍微推了一下就出来了。
写完之后看了子任务 3,但感觉每个询问 O(n) 不太好处理,没写出来。
后两个特殊性质就没什么思路了。
D 题完全不懂,题意懂了,但没思路。

黄蓝蓝紫。这场感觉跟 \(\text{NOIP}\) 差不多吧,但显然严格大于 \(\text{CSP-S}\)

中午睡的脑子疼。

下午把 \(\text{BC}\) 补了,\(\text{D}\) 题实在切不动,平面几何感觉啥也不会。

又把昨天 \(\text{CF}\)\(\text{F}\) 补了。怎么这几天做的题几乎都是找规律。

晚饭买了个砂锅烩面,感觉还挺好吃的,\(9\) 块钱还有小酥肉,加了个鸡腿。

晚自习补上场 \(\text{CCPC}\) 给我补红温了,号召同学给我调,结果最后发现是因为在 \(\text{hdu}\) 上快读可能还没 \(\text{cin}\) 快,直接把快读改了就过了。不是,我交了整整 \(28\) 发,气死我了。

之后又补了道昨天 \(\text{CF}\)\(\text{G}\)。剩下时间就没怎么做题了。

看了今年省选 \(\text{D1T1}\),发现还是思路不怎么清晰,这半年真的有提升吗?

发现我就是一直在文化课和竞赛之间乱跳,初三上学期停了一个月课,回学校之后就不怎么想学文化课。初三回归文化课快一年,中间也没怎么搞竞赛,中考后一集训感觉自己和别人差距更大了,又不怎么想学竞赛了。就是这样反复循环,不过好在基本康复一段时间之后就没什么了。

\(2025.10.22\)

早上依旧 \(06:30\) 起床。

开学以来第一次在餐厅吃饭,去二楼买了笼包子,上次吃还是在军训。

到机房泡了个什么燕窝山药片,然后洗了把脸。

上午比赛一看就是 atcoder 的风格(luogu-11662luogu-11663luogu-11664luogu-11665):

预估:100+100+7+10=217
实际:100+100+0+0=200
A 题稍微卡了会,后面推出 a_i=max(a_i, a_{i-1}) 这样子的处理之后,直接二分位置就好了。
B 题感觉也还好,先想了 O(n^2) 做法,发现瓶颈在于求解当前 i 的答案这个 O(n) 上。
然后又发现这个东西可以用类似后缀和预处理达到 O(1)。
刚开始直接 n->1 这样预处理的,但发现有些数据不太对。
于是模了几个样例之后发现要从最大值的下标 p 开始到 1,再 n->p+1,就搞定了。
写了个 B 题的对拍,就去体检了,浪费一个半小时,回来只有半个多小时了。
写了写后两题暴力,写完之后想了一下特殊性质,但没时间想预处理了。

黄绿紫紫。依旧严格大于 \(\text{CSP-S}\)

体检,验光给我验出来左眼 \(125\) 度,右眼 \(250\) 度,然后说我血压低压有点高。

排视力的时候,lxy 在我们后面,问我为啥我回来了,何意味?

中午提前去吃饭,不用排队还是很爽的。遇到小学同学了,正好坐我们旁边,很巧。

午休睡了 \(52\) 分钟,睡迷糊了都。

回来之后看了看 \(\text{C}\) 的题解,根本看不懂,于是补了 \(\text{D}\),是这样的。

晚饭也提前吃了现在,所以早上和晚上都提前 \(5\) 分钟去吃,真的很爽了。

现在晚上大课间比之前多了 \(20\) 分钟,买了个汉堡和薯条,又去小卖部买了今晚的口粮,到操场转了转,这貌似是开学以来第一次大课间在操场散步?

散完步又在学校游荡了一会,给父母打了个电话就回机房了。

下午晚上一直在刷题单,刷了 \(11\) 题,是这样的。也干了点别的,比如发现洛谷 \(\text{bug}\) 并创了两个工单。

之前开的工单也都处理过了,不过我几乎一周前开的工单怎么才处理,有点慢了哈。

其余也没什么了,回宿舍吃泡面,哦耶。

\(2025.10.23\)

早上就买了杯粥,不好喝,避雷一楼从左往右第四个窗口。

上午依旧比赛(个人比赛,无原题):

预估:100+65+[0, 25]+[0, 25]=[165, 215]
实际:100+65+0+15=180
这场属实有点难了,A 题花了 52 分钟,本来想的是分解质因数。
但显然 1e12 用根号复杂度过不去,毕竟还有 T 组数据。
于是考虑只把 1e6 以内的质因子晒出来,剩下的那个数一定是质数。
这样的话特判 k=1 就好了,时间复杂度最高 O(8e7)。
B 题先写了 dfs 暴力,25pts。然后推了好久 si 相同的特殊性质,40pts。
然后就是 CD 题写了暴力,C 题不会扫描线,挂了。D 题贪心不太对,挂了。

这场??绿蓝紫黑??貌似有一点难了,后三题纯算法,\(\text{B}\)\(\text{Manachar}\) 算法,没学过。\(\text{C}\) 题离散化加 \(\text{NTT}\),没学过。\(\text{D}\) 题题解没看懂都。。超纲这一块。

虽然但是我 \(\text{D}\) 题把答案初始化 \(0 \to 1\) 就能拿到 \(45\text{pts}\),痛失 \(200+\)

总的来说这套题很奇怪,然后赛后发现出题人是打 \(\text{ICPC}\) 的。。为啥要来出 \(\text{OI}\) 比赛啊。

下午学了学 \(\text{Manachar}\) 算法,然后把 \(\text{B}\) 题补了。\(\text{CD}\) 题题解没看懂。

后面做了几道 \(\text{Manachar}\) 的题,感觉比较板子。

晚上去南门拿零食,父母给血压仪拿过来了,测了测血压,正常了。

本来说跟 cls 他俩打会羽毛球的,因为刚才去门口路上见了,测血压耽误了,就直接回机房了。

晚上也一直在做 \(\text{Manachar}\) 的题,做了 \(4\)\(1\) 紫吧。就这样,回去睡觉。

\(2025.10.24\)

今天是 1024 耶。

上午比赛(luogu-10206luogu-10207luogu-10208luogu-10209):

预估:100+14+[4, 22]+0=[118, 136]
实际:0+0+14+0=14
这场太难了啊,A 题还好,20 分钟左右写完,但测极限数据的时候,本地栈空间爆了,我还以为死循环了,卡了我好久。
B 题先写了 O(n!) 的暴力 14pts,然后考虑的是要么从右、要么从左开始,一直拿完,但写完之后跟暴力对拍发现很多错的数据。
然后根据暴力的方法,又想的是把序列划分为两段,但但写完之后发现还不对,然后就这样根据暴力给的解法一直调调调。
调了好久好久之后,发现这个东西完全不是能这样写出来的,于是放弃了,感觉大部分数据都能对,但是有 subtask 就不一定了。
C 题读完题直接写了 O(n!) 暴力 4pts,然后推了一下子任务 3 那个性质,感觉还挺好写的,就写了一下。
然后又推了子任务 5 的性质,也还好,写完大概 22pts 就。
D 题本来想写子任务 1 的,但推半天发现时间复杂度还是不行,于是放弃。

气炸了。虽然说绿紫紫黑吧,但前两题全爆了是没想到。

\(\text{A}\) 题因为 \(\text{dfs}\) 遍历的不是最短边权和,所以有部分数据炸了,又因为捆绑,所以全炸了。

\(\text{B}\) 题因为捆绑,后面的解法没得分,然后暴力代码判断条件小于等于写成了小于,炸了。

关键是没有大样例,遇到这种问题确实不好检查出来,但偏偏捆绑,就全爆了(不然今天还能拿 \(\text{rk 1}\))。

下午把前两题补了,\(\text{C}\) 看不太懂了,不管了就。然后把 \(\text{Manachar}\) 上的题单刷完了,除了提交不了的题。

晚上刷了几道数论题。回宿舍跟同学聊到凌晨,那很兴奋了。

\(2025.10.25\)

周六,估计是周六起床最早的一次了,\(06:30\) 就起来了,去餐厅喝了碗牛肉汤。

上午花一个小时看了看 \(\text{mx}\)\(\text{J}\) 组模拟赛,感觉还是无法 \(\text{AK}\) 啊。。看完大概有个解法之后就去刷题单了,数论专题。

比赛结束了,\(\text{shw}\) 成功 \(\text{AK}\) 比赛,我 \(\text{D}\) 题解法貌似假了。

中午第一次吃麻酱鸡丝拌面,还挺好吃的,不过就是口腔溃疡有点疼。

吃完饭回宿舍洗了个头,收拾了一下行李,睡的很好(毕竟整栋楼都没几个人)。

午休完回机房发现门锁了,而且钥匙在里面,额,尴尬了。最后他们想了一些方法把教练叫过来开的门,\(\text{15:00}\) 左右才成功进入机房。本来说下午打 \(\text{mx}\)\(\text{S}\) 组的,但四点半就放学了,于是就没打。

四点半放学,去吃了个剁椒面,然后六点半又上语文课了,九点下课,快十点才到家,我要累似了。

\(2025.10.26\)

中午快十二点才起,能看得出来很需要补觉了。

吃完饭下午玩了一会,四点收拾完就出门了,去买了本周口粮,在车上给手表上下载了点音乐,这周我将很幸福。

五点多到校,因为没吃晚饭,就简单吃了个从家拿的魔芋面(上次吃这个第二天拉肚子了,兄弟们觉得这次我会拉肚子吗)。晚上回去再吃点零食吧。

晚上补了昨天的题,然后看了看某校的模拟赛,也不是很难吧。

回宿舍之后跟室友玩了两个海龟汤,然后成功让室友学了一个梗---“我找到你了呦~~”。

\(2025.10.27\)

早上买了个肉夹馍,好久没吃了,虽然有点贵但确实好吃啊。

一回机房就感觉大事不好,果然拉肚子了,那个魔芋面必须避雷!

上午模拟赛(luogu-6625luogu-6627luogu-6626uoj-542uoj-539):

预估:100+100+[30, 60]+30+[10, 30]=[270, 320]
实际:100+100+30+0+30=260
A 题挺简单的,花了十分钟左右。
B 题想了挺久的,发现区间内答案相同,所以搞了离散化,但离散化之后还是有区间异或操作,所以又搞了个异或差分。
刚开始写的时候离散化不太对,有几个手模的样例不对。稍微改了改就能过极限数据了。
然后开 C,感觉比较困难,先写了 O(n^2) 的 bfs,后面又想了 k<=20 的特殊性质,不太会预处理这个东西。
后面把 DE 的暴力写了写,E 题有 20pts 本地跑了 8.5s 左右,时限 5s,优化常数搞了好久最后还是 8s,没招了。

橙绿紫紫紫。。别样的部分分大赛。

怎么 \(\text{D}\) 挂完了,看了看发现又是边界条件错了。。小于等于写成小于了。姑且认为是没大样例的锅,嗯对。

\(\text{E}\) 题本地 \(\text{lemon}\) 跑过不了,跑了 \(\text{9s}\),但交 \(\text{uoj}\) 上跑的飞快,\(\text{2.1s}\),鉴定为机房电脑太拉了。于是 \(10 \to 30\) 申诉成功, 也是拿上 \(\text{rk1}\) 了兄弟们。

下午补了两道紫。然后刷了点数论题单。

\(\text{upd}\):晚上怎么没记干啥了,貌似刷了会数论,然后摸了会鱼?

\(2025.10.28\)

拿了点瓜子、沙琪玛什么的到机房,就没去吃早饭。

上午模拟赛(luogu-9349luogu-9350luogu-9351luogu-9352):

预估:100+100+0+[21, 31]=221
实际:100+100+0+7=207
A 题第一次想的处理麻烦了,后来发现不仅麻烦还假了,过不了我的 hack 数据。
然后又来来回回换了好几种处理方法,搞了 20 多分钟算是搞对了。
B 题刚开始只想到了 O(n^2) 做法,后来把式子拆开来看之后就简单了。
C 题没什么思路,只会暴力,结果最后半个小时发现我的暴力太暴力了,过不了极限数据。
于是就炸了,没时间写了。
D 题感觉不太难,但一直没找到性质,写了类似 O(n^2) 的解法,但是本地过不了极限数据啊。
5000 的测试点本地跑了 32s,那没办法了,不会卡常了。

绿绿紫蓝。\(\text{D}\) 题貌似思路有点问题,又挂了一点分。

中午洗了个头,dzc 来我们寝室吐槽某人,那很有意思了。

然后午休的时候我们宿舍制定了新的宿舍守则,就是“如果一天内一个人名被提及(或代称)超过 \(10\) 次,那么这个人名自动添加到寝室禁词里”,我提出的嗯对,真的笑死了啊。我还提出搞寝室仲裁,然后他们就一直在人名计数,这个方法确实管用哈。至少不会一直提某些人名了,有点烦。

下午补了后两题,然后刷了点字符串哈希的题单。晚上有场 \(\text{CCPC}\),所以 \(18\) 点就要回来。

晚上吃完饭去操场逛了一圈,正好有舞蹈社随舞,好像有我们班的就去看了两眼,结果黑布隆冬的,音乐声还可小,围一圈人啥也看不到,就回机房了。

然后打 \(\text{CCPC}\) 遇到了一件特特特特特离谱的事:

开赛我先切了两道签到题,然后想了 \(\text{B}\) 的思路,是个分组背包,我好久没写了就交给 hyf 了。

切了 \(\text{B}\) 的同时,lh 在写 \(\text{A}\) 题,他给我讲了思路感觉没啥问题,但写完代码交上去 \(\text{WA}\) 了。

lh 我俩看了半天没发现问题,然后我就按照他的思路写了边代码,对拍没问题,说明他的实现没问题。

对拍完又稍微改了下写法,还是拍不出来。lh 就写了个暴力代码,对拍,还是拍不出来。

接着我们以为是数据有边界情况没考虑到,又造了个包含 \(3*3\) 所有情况的数据,结果还是拍不出来。

此时我们搞这题到此为止已经写了 \(5\) 份程序,但都没有检查出哪有问题。

直到比赛结束,我们跟正解拍,依然拍不出来?!这时候已经感觉很离奇了。

教练给了题目数据,一测确实有问题,然后我就把有问题的数据组搞出来手模。

还把过程变量都输出出来,一个个对,然后终于终于发现问题了!

我跟 lh 犯了同一个问题,答案累加的时候有个地方应该是累加 \(m\),我俩都写成 \(n\) 了。

关键是你问为啥对拍那么多都没拍出来,原因就是我对拍造数据的程序全造的 \(n=m\) 的数据。。

我造了 \(n=5,m=5\)\(n=10,m=10\)\(n=100,m=100\),就是没试过 \(n=4,m=5\)。。

我都红温了,我再也不手动给造数据的代码设初始值了,以后我直接全随机。。

然后这道题历时三个半小时。。终于调出来了,关键我俩比赛的时候检查了好几遍代码,楞是没发现问题。甚至我俩都以为题读错了,当时 hyf 在看其他题,早知道让 hyf 也写一边代码了。。

\(2025.10.29\)

上午模拟赛(luogu-10090luogu-10091luogu-10092luogu-10093):

预估:100+[35, 100]+[0, 100]+15=[150, 315]
实际:100+35+68+0=203
A 题不太好推,分类讨论之后一直在推公式,大概 50 分钟推出来了,然后调了一会。
B 题一眼二分答案,可以每次 O(n) check,但搞完发现 long double 精度不太够啊。
就一直在卡精度,把 mid 存 map 里但还是有数据不过,就懒得管了。
C 题推了个 O(n) 的解法,但正确性有点问题,但不捆绑,所以不管了。
D 题写了 O(n^3) 暴力和 k=0 情况。

绿绿绿紫?\(\text{B}\) 题爆精度了,这没办法,\(\text{D}\) 题有边界情况没判,于是捆绑给我卡掉了。

这场挂的真有点多了啊啊啊。。下午补了 \(\text{BC}\)。补题的时候看到了这个,笑死了真的:

还有互动环节,我不行了。

之后把基础数论题单做了一半,晚上还有场 \(\text{CF}\) 好像,\(18:15\) 得回来。

晚上是 \(\text{Div.3 CDEFEFG}\)。前三题分别是构造、前缀和、构造,都还行。

然后就毫无征兆的卡在 \(\text{D}\) 了,是个非常恶心的找规律。

本来分治写的,然后写了一遍发现不太对,就去写分讨了,结果分讨情况太多了,卡了我一个多小时。。写着写着发现这东西根本写不了,情况太多。然后又转头写分治,发现我之前写的改一点就对了。。赛时最后两分钟极限切了。

赛时也看了看 \(\text{E}\) 题,有个大概思路,但感觉 \(\text{D}\) 题调出来的概率比较大,就没写 \(\text{E}\)

赛后看了 \(\text{E}\) 的题解,跟我赛时的思路一摸一样,真是,被 \(\text{D}\) 坑了。

而且看 \(\text{D}\) 题还有一个极简的数论做法,服了,那我分讨那么长时间算什么?。

\(2025.10.30\)

怎么后天就复赛了,不要啊。

上午模拟赛(N0451N0452N0453N0454):

预估:100+0+[0, 90]+[20, 90]=[120, 280]
实际:100+0+0+60=160
A 题刚开始想的任意两个不同的翻转都可以,但写完大样例不对,输出远大于答案。
于是手模了好多数据,发现有一种情况左括号不能与后面的右括号交换,于是稍微改改就可以了。
B 题感觉是个区间 dp,但没什么思路,也没有暴力分,就先跳了。
C 题想到了一个接近正解的东西,但没有正确性,能得多少分看数据强度了。
其实这个解法貌似可以扩展到正解,但是不太会记录,就放弃了。
D 题先写了 n<=5 的暴力。然后推了下值域 [1, 2] 的特殊性质,然后胡了个贪心上去。
发现对于一般情况也基本能过,部分数据可能卡不过去。

\(\text{A}\) 题差点爆零了啊啊啊,用 \(\texttt{strlen}\) 没写头文件,本地能过编,然后交上去就会挂,幸好最后几分钟在 \(\text{OJ}\) 上的在线编译器自测了一下样例数据啥的,才发现。

\(\text{C}\) 题捆绑测试,没骗到分。\(\text{D}\) 题也是,只拿到了暴力和特殊性质。

中午提前去校门口找父母拿了个衣服,本来说好昨天晚上的,但昨晚有比赛,和 hyf 吃完饭之后就回机房了,把这事忘了。今天上午又打了个电话约的时间。

午饭还是麻酱鸡丝拌面,感觉特别好吃啊。吃完又吃了点中午带来的蛋挞。

下午先把 \(\text{BC}\) 补了,怎么都是 \(\text{dp}\),怎么每次 \(\text{dp}\) 都做不出来啊啊啊。

出准考证号和考场号了,在 \(11-049\),和 sym 在一个考场,不过离的挺远的。hyf 在 \(14\) 场。

同机房有人准考证号 \(\text{HA-00666}\),哈哈,那很幸运了。

之后把很多算法的模板题又打了一遍。

\(2025.10.31\)

明天怎么就复赛了。

昨晚做梦打 \(\text{S}\),然后打太快给电脑打过载了,直接冒烟了。换了个电脑之后发现已经时间不多了,本来 \(\text{D}\) 题还有部分分思路的。赛后看成绩发现 \(\text{B}\) 题挂到 \(66\) 了,然后总分 \(266\)

上午模拟赛(N0483N0484N0485N0486):

预估:100+[60, 100]+[20, 40]+[0, 15]=[180, 255]
实际:95+100+40+0=235
A 题第一遍读题理解错题意了,感觉这个题面描述不是很清楚啊,而且大样例太水了,错误理解也能过大样例。
B 题没什么思路,暴力也不太会打,先写了值域 [0, 1] 的特殊性质,大概就是分为两种情况讨论。
如果 a_i=1, b_i=0,那要么用删除操作,要么移到前面或者后面,但先不考虑后面的请况。
p_i=min(Y, Z * |i - j| - p_j),接着把绝对值拆掉,p_i=min(Y, Z * i - (Z * j + p_j))。
这样就可以用优先队列找到 Z * j + p_j 的最大值,这个情况相当于前面少的用后面补了,相当于一个反悔贪心操作。
如果 a_i=0, b_i=1,也差不多,同理可得,p_i=min(X, Z * i - (Z * j + p_j))。
但是两个取 min 必须从另一种情况的大根堆里取,所以开两个大根堆。
然后就没什么思路了,去看 C 了,感觉 C 的 20pts 比较好写,先写了 O(n^2 * k) 的解法,就是用 st 表维护前缀最小值。
用这个时间复杂度跑了一下 k=1 的数据,居然跑了 2.9s 就出了,然后在 OJ 上跑 0.8s,感觉可以优化。
然后突然想到枚举区间可以优化一下,就是如果 s_l != '(' 就一定不是合法的区间,所以直接不枚举这样的区间。
加了这个优化居然跑了 0.3s,应该可过了,但也有可能是大样例太水了。
D 题不会,直接输出 -1 了。之后再去看 B 的时候发现可以如果值域不是 [0, 1] 可以直接把 a_i 看成宥 a_i 个 1。
这样就是 O(S * n * log(S * n)),S 是值域,只有 10,所以应该可过。

\(\text{A}\) 题是单向边,我建成双向边了,居然能拿 \(95\text{pts}\)。下午把 \(\text{C}\) 题补了,感觉有点困难。

今天晚上就可以回家了,哈哈,我还是喜欢双休。但明天就复赛了,有点慌还是。

剩下的时间几乎没做什么题,看了很多防爆零指南和骗分导论,感觉也没什么帮助的,心理作用较多吧。

晚上吃完饭回来看了两篇 \(\text{NOI}\) 游记,写的挺好的,虽然没达到理想分数,但至少参加过 \(\text{NOI}\)

\(2025.11.01\)

(以下内容摘自 https://www.cnblogs.com/So-noSlack/p/19183995


\(\text{Day -INF}\)

初赛 \(79/42.5\)

初赛是在本校考的,甚至就是我们信息课的机房。

\(\text{1 h}\) 左右写完,趴桌子上睡了会,感觉太难受了就起来了,检查了几遍,然后发呆。

\(\text{Day 0.5}\)

中午 \(11\) 点才起,收拾一下,吃了个牛肉面就去考点了。

今年考点有点远啊,一个小时才到。在门口见到了教练,还有很多之前的同学。

进场前教练嘱咐说先去个厕所,洗把脸。

\(13:43\) 进场,凑巧跟着 \(\text{star}\) 进场,恍惚间感觉我还是 \(\text{zyz}\) 的一份子,但今年不同往年啊。

不过都不重要了,现在我也遇到了很优秀的教练,和很好的同学。

还有个小插曲,进场的时候见到了一个身高不足一米的小朋友,给我吓得,结果一想貌似他是来考 \(\text{X}\) 组的,我都忘了 \(\text{HA}\) 今年新添了 \(\text{X}\) 组。不过话说怎么现在二三年级都开始学 \(\text{OI}\) 了,\(\text{HA}\)\(\text{OI}\) 正在蒸蒸日上!

考场在三楼,找到考场之后先去了趟厕所,洗了把脸,清醒多了。

坐到位置上,感觉还早,其实还是有点慌的,因为我当时已经有预感今天可能会卡在 \(\text{A}\) 题,其实我也不知道为什么有这个预感,但确实当时我就是这么想的。为了让自己不那么紧张,我劝说自己不用追求多高的分,只要一等就行,\(\text{NOIP}\) 才重要。于是趴桌子上休息了一会。

\(\text{Day 1}\)

\(14:15\) 就可以下载压缩包了,趁着这时间写了个快读。

\(14:26\) 公布压缩包密码,快速建了子文件夹和题目文件,看题。

\(14:41\) \(\text{A}\) 题先想了贪心,感觉没有正确性,于是想了 \(\text{dp}\),感觉一下子推不出来正解,就一直在推 \(O(n^3)\) 的解法。

(后面时间点记不清了,等代码公示了补。)

但是推了很久才勉强推出来一个类 \(O(n^3)\) 的解法,写了写,调对了。

感觉没底,又写了 \(O(3^n)\) 的暴力解。

此时已经快一个半小时了,感觉有点慌,就去开 \(\text{B}\) 了。

当时看 \(\text{A}\) 没什么思路的时候看过 \(\text{B}\),于是吸取 \(\text{A}\) 的教训,先写了 \(k=0\) 的特殊性质,直接 \(\text{Kruskal}\) 即可(其实我赛时不会拼哈哈,写成 \(\text{Kruscal}\) 了,不过不影响)。

接着发现特殊性质 \(\text{A}\) 可以转化成边,不过直接暴力转的话大概有大于 \(1e7\) 条边来着,所以考虑开一个数组 \(f_{i,j}\) 表示 \(i\)\(j\) 的最小边权,这样最多有 \(1e6\) 条边。接着跑 \(\text{Kruskal}\) 就行了,但这样只能过 \(n=10^3\) 的点,不过也有 \(40\text{pts}\) 了,不管了扔了。

接着准备把 \(\text{CD}\) 的暴力先拿到,\(\text{C}\) 写了个暴力,只能跑过 \(1 \sim 2\) 的点,只有 \(10\text{pts}\),不管了扔了。

\(\text{D}\),全排列有 \(8\text{pts}\),快速写完,但 \(m=1/n\) 这两个部分分没想,\(s_i=1\) 也没想,感觉这个不难想,但当时 \(\text{A}\) 没做出来就有点急,先去看 \(\text{A}\) 了。

事实上 \(\text{A}\) 没有任何大的进展,只把特殊性质 \(\text{AC}\) 写了,然后就不会了,直到现在我还觉得 \(\text{A}\) 这个 \(\text{dp}\) 一定能推出来。

接着浏览了一遍后三题,\(\text{B}\) 貌似没有什么好写的部分分了,看了 \(\text{C}\) 题,感觉 \(3 \sim 5\) 的点可以暴力卡一下,然后就开始卡常。

没想到真卡过去了,不优化本地跑 \(12s\),优化之后本地跑不到 \(3s\),希望 \(\text{CCF}\) 评测机能发点力,毕竟今年评测机还升级了。

剩下的时间就是在想 \(\text{A}\),最后 \(20\) 分钟,检查了一下各个题的部分分特判,把能写的都写了,每道题重新测了样例和大样例。

检查了一下 freopen 就交了。

\(\text{Day 2}\)

重现了考场代码,没挂分,不过我这分好像没什么能挂的了。

\(\text{luogu}\)\(70+44+25+16=155\)

云斗:\(70+64+60+12=206\)

核桃:\(70+64+25+8=167\)

小图灵:\(90+48+25+32=195\)

总结

这场虽然难度严格大于去年,但感觉还是策略失误比较多,加上这场 \(\text{A}\) 题思路完全偏了,实际上我很多次想过是不是解法问题,但只考虑了状态设计不对,一直没想过这题就不是 \(\text{dp}\),当时就应该多想想贪心的,不过这都是后话了。

其次 \(\text{B}\) 题部分分没有把握准确,实际上 \(k \le 5\) 的部分分完全可做,甚至 \(n \le 10^3\) 都比较简单。\(\text{CD}\) 也没有拿除暴力以外的部分分,感觉很亏。

打击是有的,但得到的经验就是,考虑清楚一道题所有的解法可能,觉得是 \(\text{dp}\) 的题有可能能用贪心写,觉得是贪心的题有可能是 \(\text{dp}\),这次判断失误主要是因为觉得朴素贪心的正确性无法保证,但实际上还是因为不够贪!

其次真的不能死磕一道题,我还算好的,实在不可做就跳了,至少把暴力分和简单的特殊性质打了,赛后发现有些人甚至磕了 \(2.5\) 小时 \(\text{A}\) 题,太逆天了。

最重要的是心态问题吧,被 \(\text{A}\) 题扰乱了做题策略,之后也没有完全调整过来。

达成成就:机房唯一蓝钩也是唯一没切 \(\text{A}\)、参加 \(\text{S}\) 组三年以来唯一一场没切任何一题 \(\dots\)


晚上回家之后写了这篇游记,这可能是我最早写游记的一年了,因为我想把这次的失误尽可能记录下来,以至于一个月之后的 \(\text{NOIP}\) 不会犯同样的错误。

\(2025.11.02\)

中午 \(12:15\) 才醒,吃了点饺子。

稍微补充了一下游记,收拾收拾就返校了,去赵一鸣买了点零食。

到机房发现我是全机房唯一没有切 \(\text{A}\) 的,真绷不住了 \(\dots\)

复现了一下代码,居然还没忘光,感觉几乎一摸一样,然后在各大平台测了代码。

怎么说吧,这可能是我近几年唯一没挂分的场 \(\dots\) 因为实在没什么可挂的了。

看到云斗批量测评其他省的,\(\text{TJ}\) 居然一等线才 \(49\) 分,去年 \(\text{TJ}\)\(\text{HA}\) 低了 \(5\) 分,难道今年 \(\text{HA}\) 一等线大概率 \([50, 60]\)?这有点低了吧。

\(2025.11.03\)

早上买了个饼,好难吃。

上午模拟赛(N0507N0508N0509N0510):

预估:100+[0, 30]+10+0=[110, 140]
实际:100+0+10+5=115
A 题不太好想也不太好写,快一个小时才想出思路,然后推式子、调代码,大概快两个小时过了大样例。
B 题感觉就是推式子的题,但式子推不出来啊,所以先直接把表打出来,结果发现对应关系出来之后还不太好写,搞了个树状数组记录一下,但正确性好像没保证。
所以 30pts 可能也拿不到,真不会了,模数据发现不能只考虑前缀加,还要考虑顺序,所以就不会了。
C 题先打了个暴力,但不会优化了,于是只有 10pts,感觉正解跟 m 这个范围很有关啊。
D 题一点思路都没了真是。

绿紫紫紫。

下午补了 \(\text{C}\) 题,\(\text{B}\) 题的动态开点线段树实在不太会,没补出来。

之后刷了十几道 \(\text{dp}\),最近就好好练练吧。


想写点东西,总结一下最近的经历吧。

上次写是 \(2025.09.29\),这又过了一个月了,\(10\) 月份的第一周国庆,写写学校作业,回老家了一趟,其他好像也没干什么。对于 \(\text{OI}\) 貌似也就国庆当天晚上打了个比赛。

第二周还没开始停课,重心主要在文化课上,加上刚考完月考,总结总结月考,这一周又过去了。

第三周第四周开始停课训练,每天上午打模拟赛,下午补题、刷题单。其实也就十几天,虽然这段时间把文化课抛至脑后,但感觉还是没有全身心投入到 \(\text{OI}\) 里,模拟赛打了近十场,始终没有综合总结一下。这十场模拟赛预估得分和实际得分:

\(10.20\) \(10.21\) \(10.22\) \(10.23\) \(10.24\) \(10.27\) \(10.28\) \(10.29\) \(10.30\) \(10.31\)
\([100, 160]\) \(198\) \(217\) \([165, 215]\) \([118, 136]\) \([270, 320]\) \(221\) \([150, 315]\) \([120, 280]\) \([180, 255]\)
\(145\) \(206\) \(200\) \(180\) \(14\) \(260\) \(207\) \(203\) \(160\) \(235\)

其实几乎稳定在 \(200\) 上下,但多少都有挂分,偶尔一次挂的比较严重。

\(\text{S}\) 组打崩的主要原因感觉是心态问题,赛前的 \(10\) 场模拟赛 \(\text{A}\) 题平均半个小时就能切掉,导致场上 \(\text{A}\) 题想太久之后心态有点崩,没有认真从头到尾过一遍思路,导致 \(\text{A}\) 题思路想偏丢掉最应该拿的 \(30\text{pts}\)。其次因为时间分配过于不均,导致后三题几乎没有认真思考过,只打了普普通通的暴力和一点特殊性质,当时场上大概分给 \(\text{A}\) 题将近一个半小时,后面就一直在四题乱跳,根本静不下来。最后二十分钟,把所有样例大样例测了一遍,检查了调试输出和 freopen,就提交了。

赛后也能看出来,前两题其实都不难,所以重点重点就是心态问题。赛前也看过很多游记,见了很多因为心态导致发挥失常的经历,但确实是发生在自己身上才会有很深的印象。说是正赛,但对于高中生其实是最不重要的一场比赛了,换种方式来说,这次能发现这样的问题是幸运的,至少还有机会纠正。

接下来我想说说最近的状态。最近处于感觉提升很多,但实战发挥不出来的状态,是应该反思的。最近做题也是,思路常常是灵光一现,而不是基于严谨的思维推理,感觉如果一直是这样的思维方式,那赛场上发挥就很随机了。感觉还是刷题量不够,对某些算法的特点不够清晰,或者某些算法的常见优化也不太清楚,对于特殊性质的思考不够深入。

其次就是对于 \(\text{dp}\)、图论、字符串、数据结构的复习不够,有的即使是简单的转化也看不出来。

总的来说,接下来一个月,全身心搞 \(\text{OI}\),文化课什么的先放一边。\(10\) 月确实心比较杂,前半个月什么事都有。认真打模拟赛,把该拿的分都拿到。适当练练 \(\text{Codeforces}\)\(\text{Atcoder}\),思维能力重新拾起来。把重要的知识点复习透彻。


晚上写了近期总结,大概是调整好心态了。

今晚实在不太想写题了,又写了篇杂记,不过就不放这里了。

\(2025.11.04\)

早上带了盒南街村到机房吃,就没去餐厅。

吃完回来准备打比赛,结果今天比赛出锅了,看不到题面也没数据。给教练发了私信,但没回,大家就自己刷自己题单了。教练大概 \(10\) 点多来的,得知没打比赛就把比赛先鸽了,说下午打场 \(\text{CCPC}\)

上午几乎把贪心题单刷完了。还刷了几道思维题,感觉挺好玩的。

午饭提前吃,直接给同学占了两个桌,也没有不道德吧,本来那片就没人坐,哈哈。之后跟同学打了会羽毛球,很爽了,很久没打了,被调了 \(\dots\)

\(\text{14:30}\sim\text{19:30 CCPC}\) 因为我们队少个人,教练说加我们队,他只说做法不打代码,那很有压力了。

结果刚开始 \(\text{C}\) 题我又误判了,一开始想贪心,发现不太能贪。教练及时给我拉回来了,是道二分答案,但 \(\text{check}\) 需要用不等式写,\(22\) 分钟切了 \(\text{C}\)

\(\text{C}\) 大概是这样,记 \(sum = \sum_{i=1}^7 f_i\)

\[\begin{aligned} f_1+f_3+f_5+f_7 & \ge mid \\ f_2+f_3+f_6+f_7 & \ge mid \\ f_4+f_5+f_6+f_7 & \ge mid \\ sum & \ge 3 \times mid \\ sum - f_1 & \ge 2 \times mid \\ sum - f_2 & \ge 2 \times mid \\ sum - f_4 & \ge 2 \times mid \end{aligned} \]

需要同时满足这 \(7\) 个式子,\(mid\) 就可以作答案,所以二分 \(mid\) 即可。

之后因为队友在看 \(\text{D}\) 我也去帮忙了,发现 \(\text{D}\) 是个计数题,教练帮我们写出来了初始式子:

\[f_k= \left\{ \begin{aligned} & 1, & k=1 \\ & 2^{k-2}, & k \ge 2 \\ \end{aligned} \right. \]

\[\text{Answer} = \sum_{i=1}^{n}\sum_{k=1}^i\binom{i-1}{k-1}2^{n-i} a_i f_k \]

我还没研究懂这个式子,他又推出来了化简式子,虽然当时推的边界有点问题,但很强了。

后面教练急着去上课了,我跟队友就在研究这个式子。其实赛时也没研究出来,不过赛后会了大概过程就是这样:

\[\begin{aligned} \text { Answer } & =\sum_{i=1}^{n} 2^{n-i} A_{i}\left[1+\sum_{k=2}^{i}\binom{i-1}{k-1} 2^{k-2}\right] \\ & =\sum_{i=1}^{n} 2^{n-i} A_{i}\left[1+\frac{1}{2}\left(3^{i-1}-1\right)\right] \\ & =\sum_{i=1}^{n} A_{i} \frac{3^{i-1}+1}{2} 2^{n-i} \end{aligned} \]

然后就可以直接 \(O(n \log n)\) 求了。

接着做 \(\text{E}\) 题,也是个数学,题面是这样:

  • 求长度为 \(n\) 值域为 \([0, 1, \dots 2^m-1]\) 的整数序列 \(a_i\) 的个数,满足 \(\forall 1 \le i < n\)\(a_i \ne a_{i+1}\)\(\oplus_{i=1}^n a_i=0\)

然后教练推了个这样子的式子,设 \(f_n\) 表示长度为 \(n\) 序列的答案:

\[f_n = 2^m (2^m-1)^{n-2} - f_{n-2}(2^m-1) \]

然后可以推出递推式求解,但当时讲的太仓促了,我没太听懂,回来之后又给我讲一遍才懂。

\[\begin{aligned} f_n & = 2^m (2^m-1)^{n-2} - f_{n-2}(2^m-1) \\ f_n - (2^m-1)^{n-2} & = (2^m-1)(2^m-1)^{n-2} - f_{n-2}(2^m-1) \\ f_n - (2^m-1)^{n-2} & = (2^m-1)^{n-1} - f_{n-2}(2^m-1) \\ f_n - (2^m-1)^{n-1} & = (2^m-1)^{n-2} - f_{n-2}(2^m-1) \\ f_n - (2^m-1)^{n-2} & = (2^m-1)[(2^m-1)^{n-3} - f_{n-2}] \\ f_n - (2^m-1)^{n-2} & = (1-2^m)[f_{n-2} - (2^m-1)^{n-3}] \end{aligned} \]

\(g_n=f_n - (2^m-1)^{n-2}\)

\[g_n = (1-2^m)g_{n-2} \]

由于 \(f_1=1, f_2=0\),故 \(g_1=0,g_2=1-2^m\)

\[g_{n}=\left\{\begin{array}{ll} (1-2^m)^{\frac{n}{2}}, & 2 \mid N \\ 0, & 2 \nmid N \end{array}\right. \]

再带入 \(f_n=g_n+(2^m-1)^{n-2}\)

\[f_{n}=\left\{\begin{array}{ll} (1-2^m)^{\frac{n}{2}}+(2^m-1)^{n-2}, & 2 \mid N \\ (2^m-1)^{n-2}, & 2 \nmid N \end{array}\right. \]

这样就可以 \(O(\log n)\) 求了,简直数学大神。

之后的 \(\text{H}\) 题和教练同时想出了同样的解法,让队友写了。

吃饭的时候想到了 \(\text{J}\) 的不成熟解法,然后买了个汉堡和小鸡腿抓紧跑回来,发现做法假了,但稍微想了想就又想到正解了,跟队友讨论了一下做法的正确性,貌似是正确的,但不太好写,就没写看了看其他题。\(\text{A}\) 看不懂,\(\text{B}\) 大概是个 \(\text{dp}\)\(\text{FG}\) 差不多,感觉不可做,其他也都不太可做。

怎么这场都是数学,爆爆爆。晚上已严肃学习拉格朗日插值。

\(2025.11.05\)

昨晚梦到 zzq 了,呃呃呃,怎么梦里她还洗白了,绷绷绷。

大概就是跟朋友玩真心话大冒险来着,然后我输了,惩罚是用在场任意一个人的手机给 zzq 打电话,问她对我的看法。结果电话里她说一大堆,大概就是当时的事不是她本意什么的。难评。

上午模拟赛(P85P86P87P88):

预估:100+[65, 90]+[0, 12]+[20, 32]=[185, 234]
实际:95+40+4+16=155
A 题推公式题,本来以为 f_n=f_{n-1}*2+1,然后发现不是。
手模到 n=5 猜到了应该是 f_n=f_{n-1}*2+f_{n-2}+...+f_1,然后就做出来了。
对于 m>n 的情况可以直接答案 * (f_1+...+f_{n-1}+f_n*2)^{m-n},如果 n<m 交换 n,m 就好了。
B 题看到二维回文先想到了 Manachar,然后想的是 O(nm) 把每个点的横着竖着最大回文长度求出来。
之后本来想的是暴力求矩阵的,但时间复杂度太高了,过了会想到了接近 O(n^3) 但跑不太满的方法。
就是对于 s_{i,j} 直接遍历是它回文串的部分,记一个数组 a_{i,j,0/1} 表示它所在的行和列最长的回文长度。很显然答案的矩阵一定有一个点是既属于最长行又属于最长列的,所以这么做正确性可以保证。
最后就是直接遍历一遍 ans 取 a_{i,j,0}*a_{i,j,1} 的 max。
C 题读了好久才读懂题,但暴力都不太会写,想了一会就先跳了。
D 题先写了 t0=t2=1,t1=1e9 的特殊性质,就是贪心写。然后按照这个思路写了暴力 dfs。
大概能跑过 1,2,17-19 的点,感觉剪枝也过不了 n=100,就没写。

绿蓝紫紫,爆爆爆,怎么挂这么多分,鉴定为没有大样例导致的。

\(\text{A}\) 题没判 \(n=1\)\(\text{B}\) 貌似 \(\text{Manachar}\) 挂了,\(90 \to 40\),好惨。\(\text{C}\) 不会。蒙了 \(4\text{pts}\)\(\text{D}\) 的特殊性质挂了,用 \(\text{clock()}\) 卡过去了 \(\text{12pts}\)

下午给 \(\text{BD}\) 调对了,鉴定为没有大样例导致的。本来想补正解的,但全机房没人看懂题解和 std,于是就先没补。

之后把贪心题单刷完了,刚刷完洛谷上有人说出分了。

通过神秘操作获得了分数,太崩了,成全机房倒三了,\(70+56+25+8=159\)

怎么今天这么多事啊。

\(2025.11.06\)

上午模拟赛(P93P94P95P96):

预估:60+40+[0, 20]+40=[140, 160]
实际:60+40+0+20=120
不按难度排序,先看了 A,O(n^2) 暴力可以拿 30pts,然后没有增加操作的话,可以用倍增写,时间复杂度 O(n log dep) 30pts。
B 题先用 bitset 写了 n<=20 的 20pts,然后发现是一条链的话答案是 C(n, 6),这样有 40pts。
C 题刚开始看发现暴力不太好写,先去写 D 了。
D 题先写了 a_i=b_i=c_i=1 的特殊性质,然后发现有一个 O(n^2) 的 dp 解法,这样有 40pts。
写完之后去写了 C 的暴力,结果挂了,然后发现我 D 题的 dp 也有可能挂,时间不太够了,就先去调 D 了,结果改成 dijkstra 发现 dp 解法没问题,然后就没时间了,C 题放弃了。

蓝紫紫紫。大概是吧。这场真打满了,最后半个小时还在调代码。

\(\text{NOIP}\) 晋级名单出了,进了就是了。把 \(\text{A}\) 题补了,后几题感觉没必要补了,看了看题解。

统计了一下最近打代码的字符数,\(\ge 356,146\) 字符,\(315\) 个文件。

晚饭回来之后发现云斗跑出来全省的榜单了,\(\text{rk79} \dots\)

\(2025.11.07\)

上午模拟赛(P101P102P103P104):

预估:30+20+0+0=50
实际:0+20+0+0=20
A 题太困难了,花了半个小时想到了个 O(n^2) 的 dp,可以拿 30pts,过了小样例,但没部分分的大样例,就没测。
B 题直接暴力可拿 20pts,然后发现对于所有数据可概率拿分,但优化了好久还是过不了极限数据。
C 题 O(n^2) 都不会,没写。D 题样例没模出来,n=1 也没打。

紫紫紫黑?\(\text{A}\) 因为复杂度带了个 \(\log\) 被卡了 \(30\text{pts}\)

下午补了 \(\text{A}\) 题,结果怎么正解也卡常,卡了好久,最后场外援助才卡过去。

后面的题真补不动了。最困难的一集。

下午验了一道公开赛的题,感觉质量还可以。

然后说出一道蓝题的,就根据前几天打 \(\text{CCPC}\) 的一道题想到了一道改编版,本质完全不同的一道题。

但是跟同学讨论发现不太可做啊,于是问了教练。

教练给出了一个非常复杂的解法,我大概听懂了,但不会写。

\(2025.11.08\)

昨晚跟舍友聊到一点才睡,困死我了。

上午模拟赛(P107P106P105P108):

预估:100+[8, 100]+25+[0, 24]=[133, 249]
实际:100+0+25+0=125
A 题比较简单,7 分钟写完,测了样例和几个边界条件。
B 题本来想着贪心处理原图,但发现这题跟没有上司的舞会很像,用树形 dp 求了原图答案。
然后考虑加边操作,发现貌似有个排列组合的式子可以推出答案,但不会证明正确性。
手模了好多样例都满足情况,就先不管了。
C 题 subtask 1 比较好写,写了个线性 dp,然后发现可以推广到 subtask 1~3。
稍微写了写,能过小样例,大样例太大了没法测。
D 题想到了一个 O(n^2 log n) 的写法,但是正确性没证出来,最后一个小时发现假了。
调了一会,应该是对了。

橙蓝紫紫。诈骗场。

\(\text{B}\) 题做法假了,然后捆绑给我搞没了。

\(\text{D}\) 题居然还有边界情况,赛后跟 shw 说解法的时候他提出了一种边界情况成功给我 \(\text{hack}\) 了。

下午把 \(\text{B}\) 题补了,然后在洛谷上看到个思维题单,看了看。

\(2025.11.09\)

周日,早上 \(10\) 点才起,休息了会。午饭吃的饺子。

下午返校,因为没吃完饭,在机房泡了桶面,不好吃,不过 \(3.9\) 一桶还说啥了。

晚上想到了 \(n\) 道原创题,但都很困难,讨论出来了一些,还有一些真不会了。

\(2\) 分钟出了一道橙题,但感觉有点过于简单了。

\(2025.11.10\)

早上本来说 kyf 叫我跟 zmy 早起去喝一楼的牛肉汤来着。但显然我们仨都没起来,我定了闹钟,但有点不想起,准备让 kyf 起来了叫我的,结果他没起来。

所以就去买了俩包子边走边吃。

上午模拟赛(P97P98P99P100):

预估:[10, 30]+10+4+[0, 20]=[24, 64]
实际:20+10+4+20=54
A 题构造,刚开始只写了 n<=5 的数据,可以手模出来,然后不会了,跳了。
B 题只会 O(n * 2^k) 的做法,只能过 10pts。
C 题打表写了 n=2 的,部分分像是一个矩阵的东西,但没想出来。
D 题直接 O(n^2) 模拟,可得 20pts,大样例调了一会,发现是“编号”理解有问题,然后改对了。
之后又去看了 A,勉强把 n 为奇数的构造出来了,但偶数不太会转化。

蓝紫紫紫?\(\text{A}\) 题是个 \(\text{Ad-hoc}\),差点猜到结论了,就差一点 \(\dots\) \(\text{C}\) 题也没想到用多项式乘法优化一下,这 \(20\text{pts}\) 有点亏。

中午睡的挺好的,甚至没听到起床铃,\(14:03\) 才醒。

回机房把 \(\text{A}\) 题补了,还有 \(\text{C}\) 的部分分。之后就去刷题单了。

晚上去一楼吃了牛肉拉面,然后买了个鸡腿,边吃边看吃播,很下饭了。

\(4.1\) 二分、\(12.1\) 前缀和差分刷完了。

\(2025.11.11\)

昨晚做了个很长的梦,大概就是我去上课,但是上课的地方特别偏僻,去那的路只有土路,而且还没灯,特别像那种野外。走着走着迷路了,就可吓人,但是找到地方之后,发现上课的地方跟过来的路完全不是一个风格的,特别多人,跟桃花源记写的差不多。虽然那里的人我在现实中都不认识,但感觉在梦里跟他们很熟一样,上完课之后忘了发生啥了,大概就是这样。

今天怎么光棍节。

上午模拟赛(P129P130P131P132):

预估:100+[20, 40]+[20, 40]+15=[155, 195]
实际:100+20+30+15=165
A 题比较简单,15 分钟过了大样例。
B 题 O(n^2) 的 dp 比较好写,先写了 O(n^2) 的解法。
然后想了想值域为 [1, 255] 的特殊性质,大概是开个桶,但写完对拍过不了,调了好久,一直解决不了重复计算,就跳了先。
C 题 n<=30 直接写了个 dfs,然后写了 a_i<=5 的特殊性质,但感觉 check 不太对啊,给定最大最小值貌似不能贪心 check。
D 题直接模拟有 15pts,但是特别暴力的话会 TLE,然后稍微加了个优化,想了 O(nq) 的部分分,但感觉不可写。
最后半个小时发现 B 题特殊性质的思路没问题,边界处理有问题,改了之后对拍过了。

黄蓝紫紫。怎么这几场几乎没暴力分,甚至部分分都是 \(\text{dp}\)\(\text{dp}\) 含量真有点高了吧。

下午把 \(\text{B}\) 题补了,然后 \(\text{C}\)\(O(n^2) \text{ dp}\) 一直没调出来,先鸽了吧。

之后去学了最小表示法和矩阵相关,被矩阵搞炸了。

准备从今天开始简单写一下每道题的思路和思考历程。不过就不放出来了,是这样的。

\(2025.11.12\)

上午模拟赛(P113P114P115P116):

预估:100+[16, 32]+0+[0, 15]=[131, 147]
实际:100+32+0+0+132
A 题比较简单,把式子拆开分别处理即可。大样例过了。
但有点边界条件,刚开始没发现,然后写了对拍,过了快一个小时拍出来了。
B 题先写了全排列的 20pts,ai 1e9 范围内需要写二分 log 判断是否是完全平方数。
之后没啥思路了,看了 CD 发现更不可写,于是又回来看 B 了。
然后就发现了个 O(n^2 * 2^n) 的状压 dp,写了写一遍就过样例了,有点慌,写了个对拍。
对拍没问题就直接跳了。C 题没一点思路,暴力都不太会,直接跳了。
D 题 15pts 可以直接暴力,每次加边删边然后查询就跑 Kruskal 就好了。大样例过了。

绿紫紫紫。\(\text{D}\) 题怎么爆了,不管了,先吃饭。

中午吃完饭回宿舍洗了个头,午休之后回班收拾了一下东西,他们要期中考试。

到机房先补了这个 \(\text{B}\) 题,然后就在看 \(\text{D}\) 为什么挂了,最后发现是因为一个逻辑处理问题。

好吧这个其实赛时也没法避免,毕竟写不了对拍,而且大样例都过了,当时也没多想。

补完题之后去把矩阵快速幂搞完了,再后面的就是矩阵优化 \(\text{dp}\) 了,等复习完 \(\text{dp}\) 再看可以。看矩阵优化 \(\text{dp}\) 的时候发现有个博客提到了状态机模型 \(\text{dp}\),发现这东西可以学一学,做了几道例题。

貌似语文有点难。

\(2025.11.13\)

上午模拟赛(P121P122P123P124):

预估:100+25+[10, 30]+10=[145, 165]
实际:60+5+30+10=105
A 题需要想一下,考虑用并查集维护相邻差 k 的子序列,然后遍历的时候考虑增加量。
没写启发式合并,不过极限数据本地跑 0.6s,应该问题不大。1 个小时才切。
B 题线段树不太好写,打了个暴力直接跳了。
C 题第一次看感觉暴力没什么好的模拟方式,就先跳了。
D 题可以直接模拟题意,有 10pts,感觉特殊性质这个 c_i=1 也可以写,但是没什么好的思路。
然后又去看 C 题,发现可以用 bitset 记录不合法的子集。
然后暴力搜 S,判断不合法的集合是不是 S 的子集就可以解决合法性判断。
但是过不了 n<=21 的,感觉这个东西可以优化,因为复杂度瓶颈在于枚举不合法的集合是不是 S 的子集上。于是考虑预处理这个东西,把包含不合法情况的集合标记出来,可以用 map,然后对于每个不合法情况 bfs 扩展。
但是还是过不了,OJ 上跑 2.7s,感觉是常数的问题,于是就开始卡常,一共加了 7 个优化:
1: unordered_map
2: bfs 预处理
3: emplace
4: bitset -> long long
5: “if(mp[t]) return;”
6: long long -> int
7: dfs 记录 res
搞完之后发现极限数据能过了,大概跑 1.8s,还是挺极限的。不过不清楚这个数据强度如何。
反正测了好几组数据,就这个数据跑的最慢。
最后想到了 D 的特殊性质的解法,但是没时间打了,检查吧。

绿蓝紫紫。

\(\text{A}\) 题因为有个地方没写 \(\text{find}\) 挂了 \(40\text{pts}\),不过第一次挂,下次就知道了。

\(\text{B}\) 题线段树,下午复习一下,一点都不会了。

\(\text{C}\) 题为什么数据里没有极限数据!害我卡常卡了那么久,实际上最开始的代码就能过。

\(\text{D}\) 题特殊性质的想法好像假了,幸好没写。

中午吃饭听同学说期中生物挺难的,不过应该是赋分,也还好。

下午把 \(\text{A}\) 调了一下,然后去学线段树了,晚上把 \(\text{B}\) 补了。一遍过样例,一遍 \(\text{AC}\),那很爽了。

晚饭就买了个汉堡和俩小鸡腿,回班了一趟,正好遇见 hyf,他说出了三道题,然后就给我讲了讲,感觉很妙啊(upd:后面出到了公开赛里)。

怎么同学有的都不认识我了?"同学你跟 wsy 怎么长的这么像"我真绷不住了啊。

跟 qjx、wb 聊了会就回机房了,下午考化学地理,他们在班复习了快一下午。

之后完善了一下写的笔记,怎么一下午就学了个线段树。

现在是 \(21:39\),还有 \(20\) 分钟放学,想写点东西。


今天是 \(2025\)\(11\)\(13\) 日。

最近感觉状态好多了,从 \(25.11.11\) 开始每天写做题笔记,写完题之后或者写之前把思路简单写一下。感觉挺有用的,顺便把每个算法都整理一下。感觉最近几天过的挺充实的,写一遍思路确实能加深印象,整理算法之后对算法理解也更深了。

其实这个方法是跟 pyd 学的,前几天翻到他博客,看了看发现他基本每道题做完都会写一下总结,然后对于每个算法也有整理。我抄抄抄抄抄抄。

确实博客园这个东西我一直没利用起来,之前只是把游记什么的放上面,以后就存每天的记录和算法整理了,不过目前不会公开,视情况吧。

虽然最近打模拟赛分都不高,但是明显感觉对于一道题思考更深了,毕竟紫题对于现在来说也不是随随便便就能切的,能有接近正解的思考应该算是比较好的趋向了吧。

每天也都在复习算法,感觉这个东西不是短期能完成的,以后慢慢来吧。

整理了一下博客,等以后退役了可能就把笔记和一些隐藏的博客公开了。

当然这篇随笔目前是公开的。

\(2025.11.14\)

昨天梦到 cls 在宿舍吃串被抓了,望周知。

一大早来就被 wmy 开户了,当众阅读博客,有点逆天了啊。

吃完早饭回来发现今天没比赛居然,有神秘任务:总结最近 \(20\) 场比赛。

于是整了两个小时终于整完了。


汇总:

共计 \(20\) 场比赛,总分 \(8100\),得分 \(2609\),得分率 \(32.21\%\),平均得分 \(130.45\)

挂分共计 \(273‬\),挂分率 \(9.47\%\),稍微有点高。

问题:

场次 思路有误 算法实现有误 时间分配不合理 细节问题
\(10.20\) - - - -
\(10.21\) - -
\(10.22\) - - -
\(10.23\) - - -
\(10.24\) - -
\(10.27\) - - -
\(10.28\) - - -
\(10.29\) - - -
\(10.30\) - - - -
\(10.31\) - - -
\(11.01\) - -
\(11.03\) - - - -
\(11.05\) - - -
\(11.06\) - - -
\(11.07\) - - - -
\(11.08\) - - -
\(11.10\) - - - -
\(11.11\) - - -
\(11.12\) - - -
\(11.13\) - -

总计 \(5\) 次思路有误,\(4\) 次算法实现有误,\(3\) 次时间分配不合理,\(7\) 次细节问题。

感觉细节问题比较严重,具体大概有:边界条件没判、少取模、算法细节、精度问题。

题目:

注:\(x/y\) 表示实际 \(x\) 分,预估 \(y\) 分。

场次 \(\text{A}\) \(\text{B}\) \(\text{C}\) \(\text{D}\) 挂分原因
\(10.20\) \(100/[60, 100]\) \(30/[30, 50]\) \(10/10\) \(5/0\) -
\(10.21\) \(100/100\) \(43/55\) \(43/43\) \(20/0\) \(\text{dp}\) 转移有误
\(10.22\) \(100/100\) \(100/100\) \(0/7\) \(0/10\) 暴力实现有误
\(10.23\) \(100/100\) \(65/65\) \(0/[0, 25]\) \(15/[0, 25]\) -
\(10.24\) \(0/100\) \(0/14\) \(14/[4, 22]\) \(0/0\) 妄图用 \(\text{dfs}\) 代替 \(\text{dijkstra}\)、判断条件边界问题
\(10.27\) \(100/100\) \(100/100\) \(30/[30, 60]\) \(0/30\) 判断条件边界问题
\(10.28\) \(100/100\) \(100/100\) \(0/0\) \(7/[21, 31]\) 思路有误
\(10.29\) \(100/100\) \(35/[35, 100]\) \(68/[0, 100]\) \(0/15\) 没判边界情况
\(10.30\) \(100/100\) \(0/0\) \(0/[0, 90]\) \(60/[20, 90]\) -
\(10.31\) \(95/100\) \(100/[60, 100]\) \(40/[20, 40]\) \(0/[0, 15]\) 单向边建成双向边
\(11.01\) \(70/70\) \(56/40\) \(25/25\) \(8/8\) 贪心题一直在想 \(\text{dp}\) 、时间分配不合理
\(11.03\) \(100/100\) \(0/[0, 30]\) \(10/10\) \(5/0\) -
\(11.05\) \(95/100\) \(40/[65, 90]\) \(4/[0, 12]\) \(16/[20, 32]\) 没判边界条件、\(\text{Manachar}\) 写挂了、卡时没卡过去。
\(11.06\) \(60/60\) \(40/40\) \(0/[0, 20]\) \(20/40\) 式子推错了
\(11.07\) \(0/30\) \(20/20\) \(0/0\) \(0/0\) 复杂度带 \(\log\) 被卡了
\(11.08\) \(100/100\) \(0/[8, 100]\) \(25/25\) \(0/[0, 24]\) 做法假了
\(11.10\) \(20/[10, 30]\) \(10/10\) \(4/4\) \(20/[0, 20]\) -
\(11.11\) \(100/100\) \(20/[20, 40]\) \(30/[20, 40]\) \(15/15\) \(\text{dp}\) 初始值没取模
\(11.12\) \(100/100\) \(32/[16, 32]\) \(0/0\) \(0/[0, 15]\) 逻辑问题
\(11.13\) \(60/100\) \(5/25\) \(30/[10, 30]\) \(10/10\) 逻辑问题、大整数乘法爆 \(\text{long long}\)

对策:

  • 对于思路问题,想到一个解法之后留一段时间思考解法的正确性,然后再开始写。
  • 对于逻辑问题,这个只能多见题了,感觉见过的处理方式多了就不会出现了。
  • 对于边界条件,每道题写完多想想边界条件,测一下样例。
  • 对于细节问题,只能多注意了,写的时候想想哪的细节可能有问题。

写完之后教练给我们的总结都打印下来了,贴到电脑后面,很独特的方式了。\(\text{fls}\) 文化吗,哈哈。

通知说明天学校电路检修,不允许留校,哈哈哈,双休了。

下午接着看线段树。\(5\) 点就放学了,放学最早的一集。

晚上去 yq 吃了羊肉汤,很好吃了,非常撑。

\(2025.11.15\)

早上 \(8\) 点起来。

本来说打 \(\text{luogu}\) 的模拟赛的,但是打了两个小时,就做了一题,后面的题看了看暴力分,没打。

打不动了真的,最后也没交代码,因为 \(\text{A}\) 题实现有点问题,不过赛后看题解思路是一样的。

\(10\) 点多的时候去刷了两道题单。

中午吃的砂锅和西兰花炒虾仁,外加一份麻酱面,好吃。

下午看了点博客。

刷朋友圈的时候发现 sjq 发的东西了,聊了会发现是个基因匹配算法,去学了一下,大概就是个朴素 \(\text{dp}\),还是 \(O(n^2)\) 的,于是帮他写了一下代码。

\(2025.11.16\)

上午 \(11\) 点才醒,吃了个饭下午就返校了。

晚饭买了个意大利面拌面,感觉有点难吃,\(5\) 块钱都贵了。

回来做了点权值线段树的题,稍微练了练。

\(\text{upd}\):当天不知道在忙啥,忘记写日记了,然后第二天醒过来全忘光了,记性就是这样,嗯对。

\(2025.11.17\)

上午模拟赛(P133P118P135P136):

预估:[70, 100]+30+20+[0, 30]=[120, 180]
实际:30+40+20+0=90
A 题思路不好想,一个小时才想到解法,然后写完,调了调就快俩小时了。
B 题先想的 O(nm) 解法,结果一直不对,然后就写了个特殊性质。
结果第一个特殊性质 TLE 了,第二个特殊性质估计能勉强拿分吧。
前两题搞太长时间了,后两题就写了个暴力,也没时间校验暴力对不对了。

绿蓝紫紫。

感觉今天状态可不好,\(\text{A}\) 卡了两个小时,结果还挂了,然后挂的原因特别离谱,模数 \(10^9+7\) 写成 \(998244353\) 了,以后不能复制的模数一定再检查一遍。

\(\text{B}\) 题反悔贪心又没写出来,其实也不难。前两题搞太长时间了,后面 \(\text{CD}\) 就剩了一个小时。

下午把 \(\text{BC}\) 补了。

\(16:10 \sim 21:10\) 打了场 \(\text{CCPC}\),是最近刚打过的成都站。

感觉难的没边,总共就打了 \(3\) 题,直接打铁。

赛后看题解,感觉做不出来是因为都没学过,或者没用过。

\(2025.11.18\)

上午模拟赛(N0447N0448N0449N0450):

预估:100+[20, 40]+0+0=[120, 140]
实际:100+45+0+0+145
A 题比较简单,考虑先对每个颜色跑一下最小生成树,然后再处理同样的颜色。
但是边最多有 2e7 条,不能用 Kruskal,写了个 Prim,发现堆优化比暴力的 Prim 跑的快。
就交堆优化的 Prim 了。
B 题应该是 AC 自动机,但不会写,就先写了暴力。
发现暴力是 O(n^3 * m) 的,不太能过,改成预处理区间就好了。
然后发现加个 map 优化可以把 n <= 1000 卡过去。
CD 没思路,直接随便胡了几下就交了。不过感觉这个 D 的特殊性质可写,没写出来。

绿紫紫紫。

lh \(\text{C}\) 题全排列 \(O(T \times n \times n!)\) 的时间复杂度,过了 \(T = 10^5,n=10\) 的点。

甚至就差一个点就过了 \(60\text{pts}\)

看了看 \(\text{AC}\) 自动机,思路大概懂了,但是实现不太会。先不管了吧,感觉学完场上也调不出来。

中午去三楼吃的,昨天跟 wbw 说了,结果他给我鸽了,跟 lh 一起吃的。白占位了。

回寝洗完头就直接睡了,戴着耳塞还是有用的,睡得很好,就是戴久了有点疼。

会机房继续学学学。补不动题,我终于又开始刷 \(\text{dp}\) 了。

晚饭没吃,跟 lh 还有他同学去跑步了,好几个月不运动了,跑了 \(8\) 圈岔气了。

就这配速才 \(5'51''\),真是。

跑完直接回机房了,路上碰到 ltx 了,互怼了几句。

刷题的时候 hyf 代码有个神秘问题,然后他准备问豆包,结果忘记贴代码了,就说了个”哪错了“。

真笑死了,豆包说不知道用户在说啥。

\(2025.11.19\)

上午模拟赛(N0467N0468N0469N0470):

预估:100+20+20+20=160
实际:100+20+20+20=160
A 题先想了只有最后一个限制的情况,搞出了一个 O(n^3) 的 dp。
然后稍微改一下就可以有一个 O(n^3) 解法。又写了个滚动数组和前缀和优化,O(n^2) 了。
B 题稍微有点思路,但感觉不太可写,就先写了最坏情况下 O(n^2 * t) 的解法。
之后没啥太大进展,直接看 CD 了。CD 就没啥思路,直接写了暴力分。
想了想 C 的特殊性质,感觉有一些特殊的性质,但是没想出来。
然后检查了一下 A 题,结果真发现了边界数据,然后加了个特判。

绿紫紫黑。这个分数居然能 \(\text{rk1}\)

中午跟 lh 和 wbw 一起吃的,我买了个把子肉,因为见 ltx 好几次都打包这个。

感觉挺好吃的,不过 \(13\) 有点小贵,肉也不太多。

这几天都睡的挺爽的,加上午休平均睡了 \(8\) 个多小时。

就是今天一起来感觉浑身酸疼,昨天拉伸不到位估计是,快成残疾人了。

下午补了 \(\text{B}\) 题,但感觉细节有的还是理解的不太透。

\(16:10 \sim 21:10\) 打了场 \(\text{CCPC}\),比周一打的好一点,但还是一坨。

这场怎么这么多乱搞题,我们有一题乱搞过了,有一题最劣时间复杂度 \(O(nq \log n)\) 过了 \(10^5\)

有点离谱了吧,赛后看题解还有一题也是 \(O(n^2)\) 过了 \(10^5\)

\(2025.11.20\)

上午模拟赛(P145P146P147P136):

预估:[80, 100]+[70, 100]+20+0=[170, 220]
实际:100+100+30+0=230
A 题本来以为是个简单的分讨,结果越分讨越多。
一个半小时才调对,过了所有构造的 corner case。大概率是没问题的。
B 题一看数据范围感觉不太难,本来想的 dp 的,但是发现这个东西可以贪心做。
对于每一轮,只需要先加后乘最后攻击就好了,然后轮数最多有根号 h 次。
是能过的,然后最后一轮暴力模拟就可以,稍微写了写。
发现了一些 corner case,可以特判一下,比如只有攻击或者只有 *1 和攻击。
推了一下式子,感觉有点难推这个东西。
C 题稍微有一点思路,感觉乘法操作跟这个 gcd(x,n) 有关,是一个比较有规律的东西。
但是没想出来,就写了个暴力最后。
D 题没暴力分和部分分,直接全输出 0 交了。

绿蓝紫紫。

怎么这场前两题都是大分讨。最后几分钟想到了 \(\text{C}\) 正解,但是没时间打磨了。

中午还是吃的把子肉,但怎么今天肉这么少,全是肥的,被诈骗了。

下午把 \(6.1\) 专题刷完了。

强烈谴责 HN 监考不允许带卫生纸的行为,强烈谴责 HN 监考不负责任,在选手电脑蓝屏后劝说选手放弃的行为!!!!

看一次笑一次。

\(18\) 点多吃完饭回来给 lh 机惨了,把 #define int long long 改成了 #define int short

结果他一直没写题,直到 \(21\) 点多才发现这个东西。

我们当时都快忘了机惨他了,笑死我了。

\(2025.11.21\)

上午模拟赛(P125P126P127P128):

预估:100+100+15+[0, 10]=[215, 225]
实际:100+100+15+10=215
A 题题意感觉描述的不太清晰,读了好久才读懂,中间还理解错好多次。
B 题就是暴力的 bfs,搜两遍就好了,感觉不太会爆。
C 题没什么思路,先写了 O(n!) 的暴力,算逆序对本来用的树状数组,结果发现有概率 TLE。
然后换成暴力 O(n^2) 算逆序对,结果跑的比树状数组快,估计是函数调用常数比较大。
所以时间复杂度是 O(n! * (n log n + log n!))。
D 题只写了特殊性质 B,感觉链比较好写一点,测了几组手捏的样例,应该没问题。

黄绿紫蓝。

确实信心场了,但是 \(\text{D}\) 题啥阴,题目保证了 \(S\) 一定为叶子节点,但数据没保证???

赛后测试了一下,数据还真不保证,不是,这是数据的锅不是我的锅啊,所以这 \(10\text{pts}\) 是拿到的。

shw 的 \(\text{B}\) 题挂了也是这个问题,题目明明保证了一定存在至少一个可能的藏宝位置,但数据偏偏就是没保证,然后他写了 while(true) 找到答案再 break,就挂掉了整整 \(45\text{pts}\)

中午去吃的炸酱面,好久没吃了,但感觉今天味有点淡。

一回宿舍就睡了,睡的最好的一次,做了一个超长的梦。

实际上梦里非常混乱,大概就是刚开始我们几个舍友的家长聚到一块商量不知道什么东西,貌似在一个我非常熟悉的地方,这个熟悉指的是在梦里熟悉,实际上我现实里完全不知道这是哪。貌似是让我们几个完成一个论文,正讨论着 zmy 和他家长来了,他可诡异啊,一见我就狂笑,甚至说是没见到我之前就一直在笑(起床之后我让他笑一下,简直跟梦里一摸一样)。之后讨论的什么我忘记了,我不知道去干啥了,回来的时候他们已经把论文写完了,说是论文,实际上特别高级。不仔细看是个二维的文章页面,但慢慢深入看会发现它是个三维的立体动画,甚至我能进到这个三维的立体空间。里面是个阴雨天,一堆感觉不在一个次元的人零零散散的站在一个广告牌后,只有降低视角才能看到他们,再具体的就看不清了。

到这就戛然而止了,我貌似开始梦到这段梦的前传。我来到了一个非常花里胡哨的空间,作为新人,我需要熟悉这里。在这我见到了特别多小学的同学,或者初中的同学。很久之后,我还是没熟悉那里的设施,因为实在太繁杂了,偶然见到一个之前的小学同学,刚聊没几句,就被突然来的 zmy 笑着拉走了。

下午发现成功登顶 \(\text{FLSOJ}\)

下午刷了点数列分块的题。

教练感冒了,一天都没来,全机房表示有点想他。

\(2025.11.22\)

上午没模拟赛,不过看 \(\text{luogu}\) 上有个 \(\text{mx}\)\(\text{NOIP}\) 模拟赛。

于是稍微打了打,写完 \(\text{A}\) 题就摆了。随便胡了个 \(\text{B}\) 的做法,然后 \(\text{C}\) 打了个部分分。

\(\text{D}\) 题完全没看。

最后打了 \(100+100+25+0=225\),怎么 \(\text{B}\) 题的数据这么水。

我的做法最坏情况 \(O(n^2 \log n)\),但是过了 \(10^6\),逆天。

于是写了个题解,毕竟我这种做法貌似也挺有建设性的。

看讨论区他们有随机化的 \(O(n \log n)\) 的解法,甚至有人搞出了确定性 \(O(n)\) 解法。

感觉我的题解过不了审了。

晚上放学之后去正弘汇吃了个自助小火锅,挺好吃的,菜品也多,就是有点贵。

\(2025.11.23\)

上午 \(11\) 点才醒。

晚上刚到学校,shw 说教练让打今晚的 \(\text{CF Div.1+Div.2}\),我一看,怎么还有 \(5\) 分钟就开始了。

我还没报名啊喂,额外报名时间得等开赛十分钟之后,我服了。

然后就趁着还没到额外报名时间,下了个 \(\text{Codeforces Better}\)

打的一坨,太久没打 \(\text{CF}\) 了,罚时吃饱了。

最后 \(\text{E}\) 都没切。\(\text{rk}2366\) 遗憾离场。

赛后发现,hyf 搞出 \(\text{E}\) 的一种神秘做法居然过了。

\(2025.11.24\)

\(\text{CF}\) \(\text{Rating}\) 更新了,\(1607 \to 1601\),我服了。

上午模拟赛 \(\dots\) 紫紫黑黑。成功爆零了,补了一下 \(\text{B}\)

中午吃完饭就直接回寝了,睡了一个半小时。

回机房之后,练了一会最短路的题,然后突然有个题的思路,就去出了。

是个交互题,感觉得有绿吧,放到公开赛里了。

晚上在宿舍给 ltx 讲了这题,他居然差点做出来了部分分,果然这道题还是有点数学了。

\(2025.11.25\)

早上买的酱香饼,感觉挺顶饱的。

上午模拟赛,在 \(\text{vjudge}\) 上开的,五题 \(\text{ICPC}\) 赛制。

成功拿下 \(\text{rk1}\)。下午简单写了一下记录。

下午又打了一场比赛,做不动了,打了 \(3\) 题。

开始有点紧张了,还有三天 \(\text{NOIP}\),尽可能调整到好的赛前的状态吧。

回宿舍躺床上戴着耳机听歌,不知道什么时候睡着的了,半夜醒了才发现睡着了。

找了半天才找到丢失的耳机。

\(\text{2025.11.26}\)

早餐就买了杯米酒汤,感觉挺好喝的。

上午模拟赛依旧 \(\text{rk1}\),不过就做了 \(\text{2}\) 题,大概是因为他们比较摆吧。

最近几天总是半夜醒,之前都没有这种情况,中午也是,一点半醒了一次。

其实前几天有天晚上感想颇多,但是第二天一醒来就忘完了,有点可惜没记录下来。

午休之后回来把数列分块的题单搞完了。

私信了比赛管理,请求审核公开赛。

晚上跟 ltx 搞了个辩论,我确实辩不过他,一开始就被带偏了。

\(2025.11.27\)

早上起来发现上衣的袖子和领口湿了,何意味?

上午模拟赛(P149P150P151P152):

预估:100+100+0+0=200
实际:100+100+0+0=200
A 题硬控 20 分钟,第一次见这种题,本来一直在想怎么快速求离散对数。
结果是用第二个样例给出的数据来倒着求,正着求需要离散对数,但是倒着求只需要快速幂即可。
B 题感觉不是特别难,先写了暴力。
正解也还挺好想?大概就是分类讨论最小值的位置是否包含大于 k 个 0。
稍微推以下式子就会发现可以用单调队列维护,由于昨天刚写过单调队列,稍微调一调就过样例了。
剩下的时间就在写 CD 的暴力,但是发现有点挂,最后调了一个小时也没咋调出来。

绿蓝紫黑。

上午打完比赛一直在跟 wmy 打 \(\text{CF duel}\),码速大赛说是,我狠狠虐爆。

感觉今天干挺多事的,补了两个算法的笔记,做题记录也记了 \(12\) 题。

\(21\) 点的时候想写点东西。


现在是 \(2025\text{NOIP}\) 倒计时两天。

说实话还是有点紧张的,但这次的心态确实不同以往。近四年的 \(\text{OI}\) 生涯,经历了很多挫败,但更多的是成长吧,从初出茅庐到许多人眼中的大佬,这是文化课所不能带来的成就感。这一路没有人比我更知道我经历了什么,刚结束的 \(\text{CSP}\) 可能是所有正赛中最严重的挫败了,其实就一句话,刚到高中阶段,我没有很好的完成初中到高中的心态转换。也没什么好说的了,毕竟现在已经快迎来高中的第一场省选正赛了。

随着 \(\text{NOIP}\) 的临近,我们这个 \(6\) 人小机房的分别气氛逐渐浓重,虽然才相处短短三个月吧,但其实大家也都互相了解了,平常写累了也会聊聊天。毕竟他们高二了,打完 \(\text{NOIP}\) 就退役几乎是必然的,紧赶慢赶的退役杂谈也几乎完工。我萌生一种遗憾或是惋惜的情感,或许,一年之后我也会是这样的情形,迎来我的 \(\text{OI}\) 生涯的完结。但,我希望不只是这样。

停课这六周,我感受到了对 \(\text{OI}\) 前所未有的向往,之前初中梦寐以求的每周 \(40\) 小时训练,现在居然能达到每周 \(80\) 小时训练。要知道,在 \(\text{HA}\) 这个弱省,初中的训练时间能有每周 \(3\) 小时都是奢望,毕竟 \(\text{HA}\) 这个高考大省,文化课才是我们普通人必须要经历的,可能当时比现在更有压力点。这样的投入时间,我能到现在的水平其实知足了,但高中是主战场,我想爬的再高一点,直到站在山巅,对山脚下、半山腰的学弟学妹们加油助威。

其实,我不止付出了时间,我愿意赌上文化课去投入我热爱的领域。实际上,停课期间我几乎断了所有我跟文化课同学的联系,可能偶尔在宿舍见到了,会有人问”班长你什么时候回班“,只要班里人还记得我就是了。\(22\) 班还是很好的,它让我认识了更多志同道合的伙伴,至于倾诉对象,我可能还没法钦定一个人选。

回到这次 \(\text{NOIP}\),我不想给自己设期望了,分数排名,其实都没有那么重要,往往我把一件事情看的很重的时候,它好像结果都不会很好。我总会劝慰自己,你还有机会,即使这是最后一年参加,即使面临退役,人生还长,我跟 \(\text{OI}\) 的缘分还没有尽,大可以以后在接触嘛。

其实前几天某个晚上有很多想说的话,但碍于在宿舍没有纸笔,没有记录下来,现在完全没有印象了,有点可惜。总感觉这篇杂记还有没说完的话,等我明天好好想想。

\(2025.11.28\)

赛前最后一天了。

昨天已经启动了 \(5:4:1\) 轻食模式,今天貌似已经进入 \(0:0:0\) 绝食模式了。

上午看了很多题,找了点信心。

午饭的时候听说我们被贴布告了,吓我一跳,结果是 \(\text{CSP}\) 的喜报。

吃完饭去看了眼,幸好没放我们的大头照。

下午也几乎没做题,看了很多模板、文章什么的,感觉 \(\text{luogu}\) 上的退役氛围也挺浓重。

\(2025.11.29\)

(以下内容摘自 https://www.cnblogs.com/So-noSlack/p/19287592)


\(\text{Day -INF}\)

考前几天模拟赛状态还好,感觉不会重现 \(\text{S}\) 惨痛经历。

感觉周围退役氛围挺浓厚的,虽然我还有一年才退役,祝好吧。

\(\text{Day 0.5}\)

今年还是挺不一样的,不再是一个人孤军奋战了,也是第一次赛前一天在学校度过。

考前一天晚上 \(10:30\) 躺床上,到 \(50\) 多才睡着。

\(06:30\) 起床铃打了才起,半夜醒了很多次,怎么到正赛睡眠就不太好了。

不过感觉影响不大,洗了把脸就出宿舍了,去吃了个饭。

到机房休息了会,\(07:30\) 在门口集合。

学校离考点挺近的,四分钟到考点,稍微等了一会,见了父母,简单聊几句就进场了。

这次怎么配置这么高,间隔一个机位坐,甚至是有靠背的皮椅,还有超大桌面,再也不用担心演草纸没地方放了。电脑也是 \(\text{Win10}\),不过具体啥配置忘记看了。

\(\text{Day 1}\)

\(08:27\) 就拿到 \(\text{pdf}\) 了,貌似是公布早了,我看别人都不知道密码已经公布了。

(后面时间点记不清了,等代码公示了补。)

浏览了一遍所有题,发现没有一题是那种能一眼看出算法的,感觉这场不简单的样子。

\(\text{A}\) 题看起来跟 \(\text{club}\) 很像,于是留了个心眼,发现数据范围是 \(10^{18}\),感觉不太可能是 \(\text{dp}\)

于是先想贪心,想到了一个贪心思路,写了写。

一下子过了大样例,只有大样例 \(6\) 没有过,有误差 \(1\),感觉是贪心不够彻底的原因。

按照直觉补了一种贪心,发现还是过不了,索性去写对拍了。

写完对拍,拍出来了好多,然后就一点点调。

最后发现错误的点是在,和最小的糖果不一定买了最多轮,也不一定买了次多轮。于是就发现这个轮数对应一个单峰性,考虑写三分套二分(赛后发现这个二分没必要写,直接 \(O(n)\) 也是可以的)。

快速写完了三分,过了大样例 \(6\),但是对拍出来了一个 \(\text{corner case}\),发现这个单峰性并不严格,稍微手模了一下,又发现单峰性只对于上升阶段不严格,于是稍微改一下判断条件即可。

终于是把 \(\text{A}\) 题过了,虽然并不顺利吧,但是至少心态没有乱,没有重蹈覆辙。

去看 \(\text{B}\) 题了,先想了大概 \(7\) 分钟正解,感觉不太可做,于是考虑 \(O(2^n)\) 二进制枚举的暴力,直接跑背包 \(\text{dp}\) 求最优解即可,能过掉 \(1 \sim 5\) 的点。

但是感觉这个分数不太高,看到了 \(A\) 性质,发现答案显然是 \(2^n\),白送的 \(4\text{pts}\)

之后本来想考虑一下 \(m=2\) 的性质的,但想了一会发现没什么进展,于是跳了看 \(m=2n-1\) 的性质,发现这个东西答案也是 \(2^n\),又是白送分。

既然 \(m=2n-1\) 这么轻松,于是就去看 \(m=2n-2\) 了,发现这个东西也挺轻松的,分讨即可。

然后又想了一会 \(m=2\),发现还是没思路,只剩两个小时了,决定先把后两题暴力打了。

\(\text{C}\) 题暴力不太好打的样子,写了个暴力枚举然后树形 \(\text{dp}\),只能过 \(1,2\) 的点(我也不知道当时为什么没想到用树形 \(\text{dp}\) 搞定部分分,可能只想先把暴力写完吧)。

\(\text{D}\) 题是我擅长的序列问题,但还是先保底打了个暴力,毕竟是 \(\text{D}\) 题。

然后发现 \(A\) 性质就是个单调队列,而且 \(2,3\) 的点本地也跑挺快的,卡卡常大概率能过,但是没有太大把握,相比于这 \(20\text{pts}\),感觉 \(\text{B}\) 题的 \(m=2\)\(20\text{pts}\) 貌似更好拿一点,于是决定去写 \(\text{B}\) 了。

事实上就是这样,一开始都挺顺利,搞了一会组合数容斥,写完才发现我构造出了一种完全不可能的情况,好在没有浪费很多时间,感觉脑子有点不清醒,去上了个厕所,正好 \(12\) 点整。

回来又推了一遍,发现了正确的情况,正好之前的代码能用上,稍微改了改就过了大样例,本来想先写 \(O(n^3)\) 再优化的,但写完发现这个就是 \(O(n^2)\) 的,于是就拿到了 \(20\text{pts}\),这一刻感觉我赌对了。

但是还是很遗憾没有时间去写 \(\text{D}\) 的单调队列了,不然还有望凑到 \(200\text{pts}\)

\(\text{Day 1.5}\)

下午听说了 \(\text{A}\) 题的 \(O(n)\) 写法,发现我正好是倒着想的,想麻烦了,不过两种写法都过 \(\text{luogu}\) 民间数据了,应该没问题吧。

这场一共打了严格大于 \(11,060\) 个字符,燃尽了。

总结

确实在 \(\text{A}\) 题有点浪费时间了,本来 \(5\) 分钟就想到了贪心,但是硬生生控了我快一个小时。

可能节省一点 \(\text{A}\) 题的时间的话,\(\text{D}\) 的单调队列大概是能写出来的。

其实这场还是挺幸运的,赛前刚复习的贪心、三分、单调队列都考到了。

遗憾的是码力还是跟不上,\(\text{B}\) 题其实还可以拼更多分,\(\text{CD}\) 题的树形 \(\text{dp}\) 和单调队列也应该写出来的。

不过已经比 \(\text{S}\) 的临场状态好多了,算是正常发挥了吧,没有打出什么非平凡分也是正常的。

【番外】


考虑到 \(\text{NOI}\)\(5\) 个小时 \(3\) 道题,紫黑黑。但我们的 \(\text{NOIP}\)\(4.5\) 小时 \(4\) 道题,黄紫黑黑。

我真燃尽了,能有这分数知足了。

下午回家就一直在休息,快到晚上才想起来写游记,于是爬起来写游记。

一写就写了一千五百多字,大概是因为没人打扰吧。

之后吃完晚饭整理了一下最近写的文章,目前都存到博客园里了,不顾哦很多都没公开还。

后记

今年的赛前日记就到这里了,其实今年是有花心思写的,坚持了六周。

其实我感觉写这个东西还是挺有用的,正如我在之前的日记里提到的,我是个记性非常不好的人,我需要去记录下来我是怎么度过这段时光的,可能是为了给未来的我看,也可能等我退役了会公开发表这些文章,给后来的学弟学妹们提供实物资料。

除了本文之外,这六周里我也撰写了许多番外和算法相关,不过可能现在还公开不了,到时候都会公开。

如果有人能看到这里,感谢你有兴趣了解我这六周的种种经历,其实这次发表的并不是全文,全文共 \(23,713\) 字/\(42,280\) 字符,可能未来会公开。

posted @ 2025-10-31 16:21  So_noSlack  阅读(27)  评论(0)    收藏  举报