【zkw线段树讲稿】统计的力量-线段树.ppt

* 不借助标记,支持区间修改和区间求和(原创) 先差分后变成维护一个前缀和的前缀和…… 别被吓到,前缀和的前缀和是什么 SS1 = S1 = x1 SS2 = S1+ = 2x1+x2 SS3 = S1+S2+S3 = 3x1+2x2+x3 =4(x1+x2+x3)-(1x1+2x2+3x3) 多维护一个{nxn}的前缀和就行了。 * 最长上升“区间列” 在一个区间列中按顺序找出最多区间 使得不重叠,单调增 如 [1,3] [2,4] [4,5] 答案是[1,3]+[4,5] 动态规划的可行决策是什么呢? 如果要使上升列长度大于x, 最后一个数最小是多少,记为f[x] 维护f[x]支持点查询和区间修改。 * 点查询:查询x处f[x]的值 区间修改:x左边的所有超过K的值,变为K 把x的左右换一下……(囧) 整个f[-x]就是单调减的 一个单调减的序列可以看作 是由一个普通序列经过前缀min得到的! 前缀min的逆运算是什么呢? 我们并不关心 * 我们现在要维护的就是 前缀min的逆运算后的原序列! 可是我们甚至不知道前缀min的逆运算是什么 不要紧,反正用不到。 点查询:查询x处f[x]的值 直接返回维护序列的前缀min 区间修改:x左边的所有超过K的值,变为K 把维护序列中的f[x]变为K * 不要迷恋哥,哥只是个传说…… * *

文档评论(0)

1亿VIP精品文档

相关文档