Loading

多校冲刺 NOIP2021 (16) —「树上的数·时代的眼泪·传统艺能·铺设道路 」

树上的数

每个点变成0的时间是单调的,只需要求出来,在询问数组上差分+前缀和就行了。

时代的眼泪

比较显然的换根dp,线段树合并/主席树等大常数做法不再赘述。
小常数做法其实是一个套路,就是当我们想获得每个子树内的信息的时候,如果这个信息具有可减性,可以考虑用递归回溯优化。
具体就是在进入递归前记录一下信息,出递归的时候查询一下信息,做差就是子树内的信息。
有可减性是优化的关键,同样应用这个的还有 Noip2016 天天爱跑步,注意如果是最值就不能优化了。

这道题虽然比较简单,但是做的过程却很曲折,还有一些失误。
比如说认为自己想的对就去码了,没有膜样例,这个其实很危险,因为知道码完才发现我没膜样例,若是题读错了或者是想假了就完蛋了。
所以这次没炸是侥幸,之后一定要避免,码量大的确定无误再开始码

还有就是发现自己极限数据时间10.0s,空间1GB,心态崩了。
编译的时候一直认为自己空间没开爆,实际是把五个当成一个认为没爆。
当时认为是电脑出啥锅了,幸好这不是真正的考试,长个教训,出现以下页面绝对是空间爆了。
image

仔细检查哪里开多了,比如说 \(N=1e2+10\)\(N^4=558 mb\),但是 \(N=1e2\)\(N^4=381mb\)

如下东西容易认为自己没开爆,就是把东西开成结构体,然后开了很多结构体。
image
这个东西轻松开了610MB,而我当时一直认为他是122MB。

发现自己在线段树内保存区间左右端点并不是什么好习惯,浪费空间,所以以后要传参了。

传统艺能

前几天“斐波”的超级弱化版,线段树维护矩阵就行了。

铺设道路

考场没时间想,其实挺简单的。
首先要把区间减变成单点,这个套路很常用了,一般题意里面的操作全都是区间操作优先考虑差分。
减少操作次数肯定要优先考虑正负配对,如果出现了一个负数,那么前面的正数必定够他配对,因为这对对应了一个差分数组的前缀和,也就是原序列的一个数。
所以操作次数就是差分数组内正数的和(因为每个正数都要变成0,而负数都可以和正数配对所以不用管)。
构造最大最小值考虑贪心,已知当前配不上对的正数都要丢给 n+1 配对。
所以,要让答案尽量大,就要优先配对离当前数进的,这样就会让远的数和 n+1 配对,答案会大,反之同理。
拿双端队列维护这个贪心过程就行了。

总结

CSP结束的第一场考试,心有余而力不足。

T1正解被卡常没什么经验 \(O(n)\) 跑不了 \(5e6\) 震撼了。
T2收货很大,不管是开空间,先膜样例,还是递归回溯优化。
T3是弱化版,子序列dp也很套路了。
T4考场没怎么想,这种题考后要加加班,其实也不难。

手速场,思维含量不高,但我考的仍然一塌糊涂。
我以为会100+100+100,实际分60+0+100,和CSP很像,出分前感觉良好,出分后就爆炸。

自己在考试就是正序开题,也没有什么关键决策,感觉这场的决策如果T2有经验(本质是和电脑玩了半天躲猫猫),T1不卡常还是可以的。

但是失误的地方就是没有先浏览全部的题并且预估难度,感觉有难题就药丸了,所以下场要注意。

posted @ 2021-10-26 20:26  Soresen  阅读(99)  评论(0)    收藏  举报