[CF739C]Alyona and towers
Alyona and towers
题解
很冗杂的一道题。
思路其实是很容易想到的,毕竟就是一道线段树板子题。
我们可以通过线段树来维护每一个区间的符合要求的最长子串长度,最长向左端点递增子串长度,递减子串长度,先递增再递减子串长度,以及向右端点的以上三个操作的长度。
每次操作在线段树上修改一个区间,每次合并区间时更新出当前区间的值。
但我们发现如果还要区间相加带懒标记的话就太麻烦了,于是我们考虑差分,这样判断递增与递减时就只需要判断一个点的正负性了,而且每次修改时只用修改左右端点两个点,方便了许多。
但总体上来说,还是十分的冗杂。
时间复杂度 O ( ( n + m ) l o g