闲扯
这道题主要是查询的时候细节要注意一下,其他的到没什么。
题面
Solution
我们在线段树中维护一个区间以最左边为开头能延伸多长 $x$ ,以最右边为结尾能延伸多长 $y$ ,以及区间的最长连续上升子序列的长度 $max$ 。
在 $pushup$ 函数中需要注意一下前两个变量的更新。
查询时,需要在普通的线段树的基础上加一个如果左右子树都有且能合并,那么我们还需要对答案进行更新。
但是需要注意的是我们调用左子树的 $y$ ,我们要对 $mid-L+1$ 取一个 $\min$ 。
同理,调用右子树的 $x$ 时,要对 $R-mid$ 取 $\min$ 。
Code
1 |
|
总结
一道比较经典的线段树。