*BZOJ4127: Abs

$n \leq 100000$的树,有点权,$m \leq 100000$个操作:链加一非负数;查链上绝对值之和。初始数字$-1e8 \leq a_i \leq 1e8$,加的数字$0 \leq d \leq 1e8$。

因为一直加正数所以负数变正数只会发生$n$次,每次发生这件事时暴力改即可。链剖后线段树维护区间最大负数、区间绝对值和、区间负数个数,区间加时如果最大负数被加成正的了就暴力递归改一次,一直到没有变成正数的负数为止,然后根据区间负数个数改区间绝对值和即可。

猜你喜欢

转载自www.cnblogs.com/Blue233333/p/8921388.html
ABS