2025 NOIP 赛前日记

说明

2024 NOIP 赛前日记 之后,又开始了 \(2025\text{ NOIP}\) 赛前日记,主要记录每天的学习情况,以便自我督促。

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

\(2025.10.19\)

停课前最后一个晚上。

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

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

\(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\) 题,前面卡太久了,后面没时间就摆了。

\(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\) 度,然后说我血压低压有点高。

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

午休睡了 \(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}\) 的题,感觉比较板子。

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

本来说跟同学打会羽毛球的,测血压耽误了,就直接回机房了。

晚上也一直在做 \(\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}\) 了兄弟们。

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

\(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}\) 题补了,感觉有点困难。

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

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