【游记】NOIp2020

前言

停了两周的课,效果其实一般……感觉到达瓶颈期了?学习根本没感觉。怎么学都突破不了桎梏了。就是那种状态:每天都在做题,但是不会做的题仍然不会做。

而且文化课落下不少。但是不做作业真的爽啊!

我在想是不是因为我的精神状态不够好?中午常常难以入眠。晚上也睡得不好。

相比之下,同寝室的另外两个,中午不睡觉(去机房),早上不赖床……真羡慕啊……

“下了很多次决心,实现的却很少”,说的就是我。

考前

昨日

复习了一下,但是并没有复习到脑子里。机房很热。我发觉一旦人的身体热起来,头脑就不太清醒。心猿意马。呼吸变得急促,目光变得柔和。

C S P \tt CSP CSP 考的还不算很糟,导致我有些志得意满。我祈祷 N O I p \tt NOIp NOIp 考的简单,然后轻轻松松拿下一个比较高的分数。的确,任何一场战役,都不能轻视你的对手!

心态肯定和平时测试不一样。为了安慰自己,早早地写下了

I    h a v e    f o u g h t    a    g o o d    f i g h t , I    h a v e    f i n i s h e d    m y    c o u r s e , I    h a v e    k e p t    t h e    f a i t h . {\rm I\;have\;fought\;a\;good\;fight,}\\ {\rm I\;have\;finished\;my\;course,}\\ {\rm I\;have\;kept\;the\;faith.} Ihavefoughtagoodfight,Ihavefinishedmycourse,Ihavekeptthefaith.

只可惜的是,下一句未曾赐福于我!

考前早上

没什么很特别的心情。也不觉得很困。有一点紧张,也有一点期待,更有一点自傲。

没买巧克力,没买咖啡,甚至连笔都没有。就这么孤独地上了战场。败者为寇,胜者为王, O I \rm OI OI 之路没有什么容你辩解的地方。

考中

p r e p a r e \rm prepare prepare

先把题目都看了一遍,发现难度还是有点高,第三题是个构造题。路上的时候旁边的同学说,构造题都是 CF 的,考构造题他吃屎。

T 3 \rm T3 T3 g r a d e r grader grader 有没有人好奇点开看呢 😃 我点开看了看,然后被它迷住了,耗费了大概五分钟。(里面全是 d e f i n e ,    i f d e f \rm define,\;ifdef define,ifdef 之类的毒瘤。)

不过我猜难度是递增的。应该不完全错。于是我从头开始做了。

T 1 : w a t e r \rm T1:water T1:water

一眼题。然而看到输出格式要求输出分数时,我就感到不妙了。

看了看 n ≤ 1 0 5 n\le 10^5 n105 ,估算一下分母最大是 ( n ) n ≈ 3.7 × 1 0 790 (\sqrt{n})^{\sqrt n}≈3.7\times 10^{790} (n )n 3.7×10790 。这是什么鬼?大整数维护分子分母?还要除以 gcd ⁡ \gcd gcd ,岂不是加减乘除都要写? T 1 \rm T1 T1 直接这个难度?

再看一眼 m ≤ 10 m\le 10 m10 ,总水量很少。难道把水量扩倍?但是七百九十位数操作个屁。

d o u b l e \tt double double 暴力存储,然后变回分数?完全不可做。这个精度岂不是要开 l o n g    l o n g    l o n g    l o n g    l o n g    d o u b l e \tt long\;long\;long\;long\;long\;double longlonglonglonglongdouble 才行……

再看一眼数据范围。唔?这个 d i ≤ 5 d_i\le 5 di5 是什么?蛤? d i d_i di 是度数啊!这不大水题?

再算一次,分母最坏是 6 0 11 = 3.62797056 × 1 0 19 60^{11}=3.62797056\times 10^{19} 6011=3.62797056×1019 ,恰好比 l o n g    l o n g \tt long\; long longlong 的最大值 9 × 1 0 18 9\times 10^{18} 9×1018 大一点。无符号也搞不定。只好写 l o n g    l o n g + i n t \tt long\;long+int longlong+int 的拼接大整数。

结果发现 gcd ⁡ \gcd gcd 还是很难搞。并且通分是不能直接通分的,因为两个分母直接相乘会爆掉,但是其 l c m \tt lcm lcm 不会爆。忽然意识到分母的质因数分解只含有 2 , 3 , 5 2,3,5 2,3,5 ,那就存这三个数的指数好了! gcd ⁡ \gcd gcd 也迎刃而解。分子还是老老实实地打大整数。

于是第一题总算是打完了。然而由于缺乏检查,犯了一个致命的错误:我用 y s \rm ys ys 数组来将 2 , 3 , 4 , 5 2,3,4,5 2,3,4,5 映射到对应的数组下标,唯独打了 y s [ 1 ] = − 1 \rm ys[1]=-1 ys[1]=1 。只要有出度为 1 1 1 的节点我就 R E \rm RE RE 。我爱死它了。本地评测不会出事。真不错。

花了略少于 1 h 1\text{h} 1h 的时间。比起 N O I p \rm NOIp NOIp 模拟赛的 T 1 \rm T1 T1 平均耗费时间长了不少。

T 2 : s t r i n g \rm T2:string T2:string

一开始以为真的是 k m p \rm kmp kmp 呢。搞半天全是骗人的。

随便推了两下基本上就 O ( n ln ⁡ n ) \mathcal O(n\ln n) O(nlnn) 了。出了个小岔子,树状数组的大小设置为了 n n n ,可能会被卡常。毕竟长度是 2 20 2^{20} 220 呢。我一般都是单哈希,但是稳妥,难得打了双哈希。

时间过去了一个半小时。尽管如此,剩下的时间不怎么充裕的样子。

T 3 : \rm T3: T3:

因为我根本没有打这道题,我连题目名都记不得了。

先试着去构造了一下,结果搞不定。此时,一个致命的错误出现了,它直接导致我今年的努力付诸东流。我陷入了思维定式。我一心想着要找到步数最少的解。

于是我开始考虑 d p \tt dp dp ,考虑贪心,发现连部分分也拿不到。于是我跳到了下一道题。

今天,我从通往成功的门前面走过,抱怨着为什么无路可走。

明明 n m 2 nm^2 nm2 的没有任何优化的方案是谁都可以做到的。为什么我会想 d f s \tt dfs dfs 呢?

人人都会犯错,有的人常常犯错,有的人犯错很少。但那常常犯错的,只是因为关键之处没有错,所以功成名就。那犯错很少的,仅仅因为关键之处出了纰漏,所以埋没随百草。

原来命运的大手是公平的,你平时春风得意,它就在你立于山巅之上、一览众山小的时候,推你一把。

T 4 : w a l k \rm T4:walk T4:walk

枚举哪一步让人走了出去,然后你会发现,如果枚举了轮数 x ( x > 0 ) x(x>0) x(x>0) ,那么步数的求和可以写成

∑ x = 1 min ⁡ j = 1 k ⌊ r j d j ⌋ ( n x + t ) ∏ j = 1 k ( r j − x d j ) \sum_{x=1}^{\min_{j=1}^{k}\left\lfloor\frac{r_j}{d_j}\right\rfloor}(nx+t)\prod_{j=1}^{k}(r_j-xd_j) x=1minj=1kdjrj(nx+t)j=1k(rjxdj)

这里 r , d , t , n r,d,t,n r,d,t,n 都是定值。所以你把乘积拆开,会得到

∑ x = 1 ( n x + t ) ∑ S [ ( − 1 ) ∣ S ∣ ∏ i ∉ S r i ∏ i ∈ S x d i ] \sum_{x=1} (nx+t)\sum_{S}\left[(-1)^{|S|}\prod_{i\not\in S}r_i\prod_{i\in S}xd_i\right] x=1(nx+t)S(1)SiSriiSxdi

然后交换枚举顺序,先枚举 S S S ,你得到

∑ S ( − 1 ) ∣ S ∣ ∏ i ∉ S r i ∏ i ∈ S d i [ t ∑ x = 1 x ∣ S ∣ + n ∑ x = 1 x ∣ S ∣ + 1 ] \sum_{S}(-1)^{|S|}\prod_{i\not\in S}r_i\prod_{i\in S}d_i\left[t\sum_{x=1}x^{|S|}+n\sum_{x=1}x^{|S|+1}\right] S(1)SiSriiSdi[tx=1xS+nx=1xS+1]

考虑到 ∑ x = 1 x k \sum_{x=1}x^{k} x=1xk 可以在 O ( k 2 ) \mathcal O(k^2) O(k2) 的复杂度内求解,总复杂度是 O ( 2 k k 2 ) \mathcal O(2^kk^2) O(2kk2) 的,再乘一个 n n n ,还是能过不少分。如果你只瞄准 k ≤ 5 k\le 5 k5 的情况,可以把 k k k 次方求和的公式手推出来,就能去掉 k 2 k^2 k2 ,我感觉是 80 p t s \rm 80pts 80pts 左右——只有 w ≤ 1 0 6 w\le 10^6 w106 k ≤ 10 k\le 10 k10 的情况处理不了。不知不觉写成了题解。

打了代码又发现, O ( k 2 ) \mathcal O(k^2) O(k2) 可以与 n n n 乘在一起,作为预处理,所以复杂度变为 O [ n ( 2 k + k 2 ) ] \mathcal O[n(2^k+k^2)] O[n(2k+k2)]

结果 l u o g u \tt luogu luogu 数据范围能让我直接过掉?越是这样我越难过 😢

我没有考虑到, x = 0 x=0 x=0 是行不通的,我把它混为一谈、一概而论了。所以我耗费了一个半小时,得到了 30 p t s 30\rm pts 30pts ,这是最后十五分钟及时忏悔的结果。

s u b m i t \rm submit submit

检查了一遍文件输出输出。检查一下有没有输出调试信息。检查一下有没有没开 l o n g    l o n g \tt long\;long longlong 。检查一下数组大小,可是没有检查是否有数组越界。

差不多了。我知道我的故事结束了。没人会记住我。没人会知道,今天,一个寒冷的冬天,在 N O I p \rm NOIp NOIp 的赛场上,有一个年轻人感到了深重的绝望。

考后

教练约谈

如题。教练说我策略有问题,又任性了起来,想打正解。

可是我知道,如果让我敲 T 3 \rm T3 T3 ,由于陷入思维定式,我可能真的无法可想。

与之形成鲜明对比的是, T 4 \rm T4 T4 我是真有思路。(尽管第一轮要拿出来单独做这件事,我是没有想清楚的。这完全是我的实力原因,而不能归结于所谓粗心一类的偶然因素。)

我不知道该怎么解释这个事情。

三省吾身

其实问题主要出在 T 3 \rm T3 T3 身上(教练眼中如此)。我构造题实在做的太少,以致于我 T 4 \rm T4 T4 做得比 T 3 \rm T3 T3 顺利很多。这能怪谁呢?还是我自己的原因。

至于 T 4 \rm T4 T4 ,完全是没想清楚,靠着模糊的直觉就开始硬上。其实这个结论是比较隐晦的……不像水往低处流那么自然。这也是 x = 0 x=0 x=0 不奏效的原因。

牢骚

我在想,一个最好的学习状态是这样的:我一个人坐在电脑前,四周是一片黑暗。外面是风声、雨声、虫鸣声,当我说话时,回答我的只有回声。我不知道白天黑夜,我看不见春去秋来,我只在乎面前的这个电脑。

但是这个状态一定不能长久存在,否则人就不再是人了。有的人可以在这种状态与另一种状态之间切换自如,不是因为他们结庐在深山,而是因为心远地自偏。

消愁

本来我心态已经碎成渣渣了。结果当天晚上去打了乒乓球,那铲的叫一个带劲!马上把前面这些糟心事都忘光了。

生活不止眼前的 W A \rm WA WA ,还有乒乓与火锅(晚上出去吃的火锅。发现萝卜是个不错的选择!)

回想起来,是不是因为停课的时候没有运动,反而导致了不好的结果?反正昨天体能下降的厉害,今天背还是痛的。

父母也没怎么问我的成绩,挺好的。因为他们才不管我考的稀撇。他们只讨论麻将怎么打。

总的来说,我老了,打不过年轻选手了。他们来骗,来偷袭,这好吗?这不好。希望出题人耗子尾汁,好好反思!明年再战!!!

评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值