NOIP 2021 游记--zhengjun

比赛前一天

上午翻了翻打过的模拟赛(其实是翻 cqy 的提交记录发现有原题的),发现洛谷上都有很多紫题,于是贺了自己的代码过了好几道紫题和一道蓝题。

吃完饭简单收拾了一下就上大巴了。

在大巴上和 fls 坐一起,用我的电脑看了电影——《唐人街探案3》(事先下载下来的),还边吃自己带的零食边看电影,零食在车上就吃完了,电影其实是陪 fls 看看,毕竟我看过了,反正到了酒店心情就蛮放松了。

到酒店时,zyq 跟我说,他怕 fls 晚上用机械键盘打代码,然后他就不能早睡了,于是要和我换房间,所以我就换了,(反正我睡得死,谁也吵不醒),最后就是我和 fls 住一个房间,zyq和 rsj 住一个房间。

到饭点了,就跟着叶老师去酒店对面的饭馆吃火锅,我被辣的嗓子都快冒烟了,不过还是经不住美食的诱惑,塞进肚子里了。(这顿饭好评,除了太辣了,话说杭州吃辣吗)

本来吃完饭想出去逛一逛的,但是 fls 说不太想去,所以我就不去了。

回到酒店后,就打开电脑,注册了一个爱奇艺账户,结果给了我一天的会员,然后我就疯狂地下载了 23 部 vip 电影,真是血赚(还好带了网线,速度 10 MB/s,飞快……)。

再就吃了一些零食,看了亿会儿手机,洗了个澡(这维也纳酒店的水压真大,蛮舒服的,就是水温不太好调),到了 10:30 之后,差不多就睡了(一下子就睡了)。

比赛当天

6:10 就起了床,又看了亿会儿手机,然后收拾好东西,下楼吃饭了。

早餐不是特别好,反正吃了也差不多,我也不是很挑剔。

然后把东西放到车上就出发去杭州吃饭师范大学了。

学校门口人特别多,排了好长的队伍才进入杭师大,进去之后,不知道谁先开始讨论如果从小学开始参加信息竞赛,可以一年级禁三一次……三四年级再来一次……到了初中再正常参赛,真离谱……

到了考场有一个天大的惊喜:FLY 竟然就在我的考场,而且就在我所在的 C 区监考,感觉心中兴奋很多,真是个大彩蛋。

考试过程

一开始先开了 T1,发现不太会,然后打了个暴力试了试,结果发现本地 0.5s 就跑完了大样例,于是顺利的做完了这道题。

此时时间才刚过去 13 min。开了第二题,想着前面进位会影响后面的进位,但是后面的进位不影响前面的进位,于是看看数据范围,感觉是一个恶心的 dp,于是又想了半小时,突然发现可以先令 a a a 数组递增,然后就可以 dp+排列组合弄一下就可以了,结果代码打出来一坨细节,调到 10:50 才调出来(最后花了 20 分钟调了半天,又花了 10 分钟写了份暴力,然后发现一样的,去看了看体面,TM 的让我求小于等于 k k k 的权值和,人都傻掉了,改完就对了……),此时已经吐了。

对着代码感觉十分无语,于是缓了一下,出门上了个厕所再回来开 C 题。

开了 C 题,一眼就想到了对 a a a 序列进行差分,然后就什么都不会了。

于是阅读了一下 D 的屎山题面。一看暴力可能就要两三个小时才能打出来,于是立马放弃。

回来推了半天方差的公式,结果发现一个大问题——开始一步就 n × ( …   ) 2 = ( n 2 × …   ) 2 n\times (\dots)^2=(n^2\times \dots)^2 n×()2=(n2×)2,直接给我整懵了,浪费了我 25 分钟时间。

推完之后发现就是 n × ∑ i = 1 n a i 2 − ( ∑ i = 1 n a i ) 2 n\times\sum\limits_{i=1}^{n}a_i^2-(\sum\limits_{i=1}^{n}a_i)^2 n×i=1nai2(i=1nai)2。我就是憨批!

结果对着这个式子没看出来什么,就之间打了个 O ( n ! × n ) O(n!\times n) O(n!×n) 的算法,感觉这道题太不良心了,部分分只有 24 24 24 分。

然后发现好像有个结论:就是这个差分的数组一定时先不升,后不降,于是可以 O ( 2 n × n ) ∼ O ( 2 n × n log ⁡ n ) O(2^n\times n)\sim O(2^n\times n\log n) O(2n×n)O(2n×nlogn) 枚举每个数要放在那一边,然后计算就可以了,发现自己有了 48 48 48 分。

然后感觉部分分拿得差不多了,还剩一个多小时,我在打 D 题 24 24 24 分暴力和继续拿 C 题的 24 24 24 分的部分分之间做出了一个艰难的选择(考虑了我 5 分钟)——最终,我选择了后者。

然后盯着方差的计算式看了蛮久的,突然发现可以 dp,就是先将对 a a a 差分出来的数组进行从大到小,然后每一个要么放在左边,要么放在右边,然后用 f i , j , k f_{i,j,k} fi,j,k 表示选到差分数组的第 i i i 个,放在前面的差分数组元素的和为 j j j,抉择过的 a i a_i ai 的和为 k k k,转移 O ( 1 ) O(1) O(1),复杂度就是 O ( n × a n 3 ) O(n\times a_n^3) O(n×an3),然后感觉记忆化搜索要好大很多,就打了记搜,发现可以拿 24 24 24 分,然后如果优化一下的话,可以把最后的 3 3 3 个点过掉,然后试了试,结果还是跑不出来,赛后发现当时没开栈空间,就特别尴尬,然后洛谷上拿了 80 80 80 分,不知道为什么有一个点 WA 了……

最后剩下 15 15 15 分钟,我有做出了一个艰难的决策——打 D 题 24 24 24 分暴力和检查一下什么低级错误。

我再次选择了后者,结果果然检查出来我 C 题数据分支的时候有两个对应错了,幸亏检查出来了(大样例没测出来……)。

最后就这么交卷了。

然后上了大巴,又和 fls 看了《环太平洋》,然后就休息了一会,就到了学校。

感想和心得

  • 考试的时候该执着还是得有分寸地执着,本来 T2 调不出来想放弃了,但是最终发现题目一个地方看错了……

  • 考试的时候要慎重考虑一下策略,即使花 10 10 10 分钟选择一个正确的策略也比花 2 2 2 秒钟选择一个错误的策略要强得多。

  • 虽然很注重审题,但还是看错了一个地方,看错题目真的非常浪费时间(导致我 D 题暴力没写……)

  • 考试最后的几分钟还是不要调试代码或者赶代码了,好好检查吧。

最后

真不知道这次分数线会怎么样呢……

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

A_zjzj

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值