前言
停了两周的课,效果其实一般……感觉到达瓶颈期了?学习根本没感觉。怎么学都突破不了桎梏了。就是那种状态:每天都在做题,但是不会做的题仍然不会做。
而且文化课落下不少。但是不做作业真的爽啊!
我在想是不是因为我的精神状态不够好?中午常常难以入眠。晚上也睡得不好。
相比之下,同寝室的另外两个,中午不睡觉(去机房),早上不赖床……真羡慕啊……
“下了很多次决心,实现的却很少”,说的就是我。
考前
昨日
复习了一下,但是并没有复习到脑子里。机房很热。我发觉一旦人的身体热起来,头脑就不太清醒。心猿意马。呼吸变得急促,目光变得柔和。
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 n≤105 ,估算一下分母最大是 ( 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
m≤10 ,总水量很少。难道把水量扩倍?但是七百九十位数操作个屁。
用 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 di≤5 是什么?蛤? 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=1∑minj=1k⌊djrj⌋(nx+t)j=1∏k(rj−xdj)
这里 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)∣S∣i∈S∏rii∈S∏xdi⎦⎤
然后交换枚举顺序,先枚举 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)∣S∣i∈S∏rii∈S∏di[tx=1∑x∣S∣+nx=1∑x∣S∣+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
k≤5 的情况,可以把
k
k
k 次方求和的公式手推出来,就能去掉
k
2
k^2
k2 ,我感觉是
80
p
t
s
\rm 80pts
80pts 左右——只有
w
≤
1
0
6
w\le 10^6
w≤106 但
k
≤
10
k\le 10
k≤10 的情况处理不了。不知不觉写成了题解。
打了代码又发现, 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 ,还有乒乓与火锅(晚上出去吃的火锅。发现萝卜是个不错的选择!)
回想起来,是不是因为停课的时候没有运动,反而导致了不好的结果?反正昨天体能下降的厉害,今天背还是痛的。
父母也没怎么问我的成绩,挺好的。因为他们才不管我考的稀撇。他们只讨论麻将怎么打。
总的来说,我老了,打不过年轻选手了。他们来骗,来偷袭,这好吗?这不好。希望出题人耗子尾汁,好好反思!明年再战!!!

被折叠的 条评论
为什么被折叠?



