[WC/CTS2024] 水镜

[WC/CTS2024] 水镜

不知道大家还记不记得这样一件事情:

  • 当我们要证明一个数列 \(\{a_n\}\) 单调递增时,只需证 \(a_i < a_{i+1}\)

这是我场上的核心思路:如果要说明二元组 \((u,v)\) 合法,只需使得其中每相邻两项都递增。

注意到这题的 \(L\) 是我们自己定的,所以这里就有一个思路:考虑 \(L\) 在那些位置是合法的,如果哪里都不合法就失败了。

考虑相邻的两个 \(h_u\)\(h_v\),不妨设 \(h_u < h_v\),发现若 \(L < \dfrac{h_u + h_v}{2}\),那么必不能翻 \(h_v\),否则必不能翻 \(h_u\)。对于 \(h_u \ge h_v\) 的情况是类似的,但是这里的限制是必翻。

对于每相邻三项,中间那项不能既翻又不翻。于是这就带来了一个对 \(L\) 的限制。不难发现,我们如果要判断二元组 \((l, r)\) 是否合法,只需将包含的限制交起来看看是否为空集就行了,如果存在合法的 \(L\),按照上面的翻法一定可以构造合法。所以我们就找到了充要条件。剩下的随便用一个 rmq 算法即可。

posted @ 2024-02-21 11:33  DCH233  阅读(5)  评论(0编辑  收藏  举报