0%

NOIP2020 游记

希望,永远都在。

Day0

下午试机,用的是省冬的题。

写完 T1,回机房和 Hatate / HHCY / Vxlimo 打了会雀魂。

晚上看了看 KMP,但并没有复习完。

作业也不想写,就去写了会 NodeJS。

Day1

赛前

奶一口不考字符串!

LH 罕见地比 PinkRabbit 还迟来,拍完照就去机房准备了。

压缩包密码是「考生加油」。

赛时

T1

拓扑排序!

使用 int 竟然过了大样例,然后压根没想到会有高精,改了 long long 就交上去了。

T2

完了完了,NOIP 考字符串了!

哦,好像字符串 hash 就可以了,那没事了。

然后枚举 CC 的长度就可以了,当时天真的想。

分析了一波复杂度:O(nlogn)\mathcal O(n\log n)

然后回忆了一下调和级数 i=1nni=nlnn\sum_{i=1}^n\frac ni=n\ln n,自认为很对就看 T3 了。

T3

构造!

粗略看了一下,发现连 n=2n=2 都完全不会。

为了避免影响心态就先看 T4 了。

T4

感觉自己在哪里见过这类题……

思考了 10min,觉得自己需要先写个暴力,于是写了个 30pts。

思考了 20min,觉得 k=1k=1 十分可做,然后码 / 调了 1h 再把 10pts 拿到手。

接着什么都不会了……

此时还剩 2.5h。

回去看 T3,想了很久却一点不会。

检查了剩下三道题,抓出了一个小 bug,剩下的时间还是没想到任何 T3 的解题方法。

赛后

T1 被 PinkRabbit 构造出高精数据,但好像没有很多人写。

T2 发现枚举因数时出现问题:

考场代码:

1
2
3
4
5
6
7
8
9
10
11
for(int i=2;i<n;++i) {
for(int j=2;j*j<=i;++j) {
if(i%j) {
continue;
}
res+=calc(j,i);
if(j*j!=i) {
res+=calc(i/j,i);
}
}
}

实际上应该:

1
2
3
4
5
for(int i=2;i<n;++i) {
for(int j=i;j<n;j+=i) {
res+=calc(i,j);
}
}

O(nlogn)O(n(n+logn))\mathcal O(n\log n)\to\mathcal O(n(\sqrt n+\log n)),100pts → 84pts(虽然即使写对,双 hash 也被卡常了)。

心态大崩。

雪上加霜的是,在校内 OJ 测试 LinZhengYu 造的数据时,发现 T4 的暴力在 dfs 到 k+1k+1 层时忘写 return但洛谷与 OItiku 竟然可以通过

然后就忐忑不安地等待正式成绩的发布。

Day4

从化学实验室回来,迎面来了 Yuc。

「初评成绩发布了!丧心病狂出题人 T1 卡 gcd 先乘后除卡到 60pts。」

嗯,T1 我记得写了先除后乘。

语文课根本没心思听,一下课便冲去了机房。

90+84+0+40=214,FJ rank 22,差(按这次排名的)省队线 5pts。

T4 没卡,谢谢 NOI Linux。

总结

先恭喜同学 LinZhengYu 与 Yuc(按这次排名)进队。

小错误太多,小错误真的太多。

同时发现自己在构造题的薄弱,并准备恶补数学。

谢谢这次的运气,但实力才是最重要的部分。

到明年 4 月还有时间,希望不沉迷划水,多学习省选算法,不要像上次只能用暴力达到 20pts。

其他 OIer 的游记

PinkRabbit:【比赛游记】NOIP2020 又当工具人记
Yuc:CSP-S2020 第二轮 / NOIP2020 记
Peanut_Tang:CSP-S&&NOIP2020 游记