- CC20260060's blog
20250821 做题日记
- 2025-8-21 22:07:20 @
分类
:还在写代码。
:一眼题。
:经过思考可以做出来。
:看完题解立马理解。
:看完题解经过一段时间的思考能够理解。
:看完题解经过长久思考才理解。
CF1982F Sorting Problem Again
转换还是比较显然的,就是感觉特判有点多。
P4198 楼房重建
模版,一眼。
CF1340F Nastya and CBS
第一次切 *3300。
由于 我们考虑分块,对块内进行暴力重构。
如果一个块本身不是形如 一堆右括号 + 一堆左括号 的话,显然是不合法的。
然后我们考虑用哈希来模拟匹配就可以了。
码量有点恐怖(使用了 AI 帮忙 debug)。
AT_abc244_h Linear Maximization
将 转换为 即可。
注意特判 ,修了好久。
P3515 [POI 2011] Lightning Conductor
被诈骗了,原本是线段树的作业,结果是用决策单调性做。
还是分治好写。
CF407E k-d-sequence
简单题,不知道为什么是 *3100 漏盘了一件事,我错了。
考虑枚举右端点 ,则一段区间 合法当且仅当:
-
中没有相同的数
-
的差分数组的 gcd 为 的倍数。
-
$ \frac{max_{l \leq i \leq r} a_i - min_{l \leq i \leq r} a_i}{d} \leq r - l + 1 + k $。
可以用两种线段树(一个维护 ,一个维护 的差分数组)实现,时间复杂度 。
至于如何算第三个条件,转换为 ,是不是瞬间简单了,可以线段树二分。
记得特判 。
P13788 「CZOI-R6」Permutation and Subsequence
还是一眼题。
P13789 「CZOI-R6」游戏
把绝对值拆开即可,修了好久。
P13790 「CZOI-R6」Border
考虑枚举长度+哈希即可。
CF773E Blog Post Rating
好题,让我大脑消失。
首先肯定会让 单调不降,然后我们会发现一个转折点 ,在 时都是 ,然后 才单调不降。
考虑求出这个转折点 ,令 表示小于等于 的数的数量,容易发现 为第一个满足 的数,这等价于 ,使用线段树二分即可。
搞出这个转折点后,我们会发现 之后的 对答案的贡献为“最终答案不会超过 ,很容易拆成 和 ,变为维护 。
时间复杂度 。
(代码基本上抄 Alex_Wei 的)。
P4425 [HNOI/AHOI2018] 转盘
(这居然是单侧递归线段树???我的一辈子)。
考虑转换为以下问题:
你从 时刻开始出发,每次可以往后移动一步或者停留。每个点在 消失,求最小的 ,使得你能走遍所有点。
显然停留一定不优,所以你会一直走(最重要的观察)。
然后我们破环为链,枚举起点 ,则可以得出:
令 ,则:
$$\begin{aligned} & ans = \min_{n \leq i < 2n} (\max_{i - n \leq j \leq i} a_j + i) \\ \iff & ans = \min_{1 \leq i \leq n} (\max_{i \leq j \leq i + n - 1} a_j + i) + n - 1 \end{aligned} $$由于 ,所以可以推出:
$$ans = \min_{1 \leq i \leq n} (\max_{i \leq j \leq 2n} a_j + i) + n - 1 $$所以我们只关心后缀最大值。
单侧递归线段树,启动!
P3081 [USACO13MAR] Hill Walk G
omg so ez 简直是李超线段树板子题。
CF39I Tram
看错题了,ctmd。