如何将区间修改转为区间加减
查看原帖
如何将区间修改转为区间加减
700558
williamwei楼主2024/11/28 10:32

思路:以右端点从左到右扫描线。

w(l,r)=mini=lraiw(l, r)=\min \limits_{i=l}^r a_i,维护一个数组bb,对于目前右端点rrbi=w(i,r)b_i=w(i, r)

对于rr找到前面最近的满足apara_p\leq a_r的点pp,将b[p+1...r]b[p + 1...r]改为ara_r,然后维护一个序列cc使得所有的cxc_x都加上bxb_x

对于每个左端点ll计算c[l...r]c[l...r]的和。

2024/11/28 10:32
加载中...