NOIP2020及停课训练的总结与反思

博主分享了NOIP2020比赛的总结和反思,指出赛前训练期间状态不佳,模拟赛表现波动。比赛中遇到的问题包括心态调整、时间管理以及对题目的理解。在NOIP2020中,T1题目需要拓扑排序和高精度计算,T2题目涉及双哈希和最短循环节,T3和T4题目也带来挑战。博主指出自己在时间紧迫和算法优化上的不足,最终得分未达预期,认为应提高比赛策略和冷静应对问题。
摘要由CSDN通过智能技术生成

N O I P 2020 NOIP2020 NOIP2020 没有考好。考完一周后二段考去了,于是现在才写总结。

赛前训练

停课期间总体上感觉不在状态,模拟赛炸了一天又一天,最后两场稍好一些,只不过还是存在一些失误。

或许是我实力太弱了吧,我时常连签到题都不会做;或许是我心态不好吧,容易挂死在一道题目上面;或许是我时间安排不合理吧,几乎百分之六七十的比赛都没有把能打的题全部打完,对拍一次都没有用到过。

最后一场模拟赛,侥幸地碰到了打表题和构造题,于是拿到了高分。但这只是模拟赛, N O I P NOIP NOIP 的赛场上怎么会有打表题出现呢?加上构造题也是从来没有考过的,我虽然获得了一些信心,但是深知丝毫不能麻痹大意。

赛前停课训练期间(尤其是最后一个星期),我几乎扔掉了文化课,一天最多看一节录像课。停课前搬来的一大堆教科书、练习册只是放在地上积尘。这也导致了我二段考 物理、化学、生物、历史、政治 的爆炸。

NOIP2020

经过半个学期的磨砺,我沉稳了许多。先静下心来看完题, T 1 T1 T1 终于不是阴间题了, T 2 T2 T2 看起来也不难,不过估计要用到 K M P KMP KMP S L S SLS SLS 惨遭打脸×1?), T 3 T3 T3 是一道构造题( S L S SLS SLS 惨遭打脸×2), T 4 T4 T4 ……什么鬼?!!

于是开始做 T 1 T1 T1 ,我一开始以为直接暴力流就可以了,结果打着打着发现要 拓扑排序 。接着很快就打完、调过了。我估计上限是 5 11 5^{11} 511 ,保险起见就用 long long 存吧!然后打了个 makefile.cpp 来构造大数据看看程序会不会出锅。结果出现负数了,但由于我很快发现 makefile.cpp 里面没有限制起点到终点最多 10 10 10 条边,因此就不觉得是程序的锅。

T 2 T2 T2 我的想法是从右往左枚举 C C C 的左端点 i i i ,然后找到前面的 A B AB AB 只能是由 S 1.. i − 1 S_{1..i-1} S1..i1 中的 最短循环节 循环几次拼成的串了,我还尝试证明了一下,发现是对的。

找最短循环节可以用 双哈希 做到 O ( n ln ⁡ n ) O(n\ln n) O(nlnn) 的时间复杂度,前面的 A B AB AB 可以通过 O ( l n ( i − 1 ) ) O(ln (i-1)) O(ln(i1)) 枚举 i − 1 i-1 i1 的因子得到。那么现在的问题就是 S 1.. x S_{1..x} S1..x 中有多少个满足 F ( P ) ≤ y F(P)\le y F(P)y 的以 1 1 1 为左端点的子串 P P P

这个可以设 g i , j g_{i,j} gi,j 表示 S 1.. i S_{1..i} S1..i F ( P ) = j F(P)=j F(P)=j 的个数,然后把它前缀和(在第二维上)一下就可以得到 f i , j f_{i,j} fi,j 了(表示 S 1.. i S_{1..i} S1..i F ( P ) ≤ j F(P)\le j F(P)j 的个数)。

但是我发现我只会用 vector 来预处理一个数的因子,然后即便我用了 reserve 函数进行优化,其常数还是巨大的——我通过不了 100 100 100 分的数据。于是只好把数组开小、上限开小,只拿 84 84 84 分。

这道题我一开始还想错了一些东西,走了很长的弯路。我在这道题上用了两个小时,期间多次想放弃,但是分值那么高,放弃了 T 2 T2 T2 肯定就等于放弃了 N O I P 2020 NOIP2020 NOIP2020 ,于是只好硬着头皮打。弄完这道题后,已经是 12 : 11 12:11 12:11 了,心态大崩。

接下来用了十几分钟打完了 T 4 T4 T4 的暴力,紧接着想要在半个小时之内打完 T 3 T3 T3 的暴力。结果没有成功, T 3 T3 T3 的暴力连样例都不能过,由于没有时间调试只好直接交上去。

估分: 100 + 84 + 0 + 15 = 199 100+84+0+15=199 100+84+0+15=199 ,估计没了。

官方数据: 60 + 84 + 0 + 35 = 179 60+84+0+35=179 60+84+0+35=179 ,全省 104 104 104 ,希望能进省选。

赛后发现 T 1 T1 T1 要写高精度(最坏情况下通分后分母是 5 11 × 4 11 × 3 11 = 6 0 11 5^{11}\times 4^{11}\times 3^{11}=60^{11} 511×411×311=6011 的), T 4 T4 T4 我判断无解的方法是有问题的,只要一个周期动都不动就判断为无解,却忽视了这个周期内走了一大步直接越界的情况。

但是 T 1 T1 T1 卡先乘后除和先除后乘,一个 60 60 60 一个 90 90 90 也太 不讲武德 了吧!

这次 N O I P NOIP NOIP 没有考出水平(其实这题目本身也考不出水平),主要是 T 2 T2 T2 挂得太久了。比赛时还是要沉稳,想清楚再开打,避免空耗时间。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值