*BZOJ4127: Abs

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

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

posted @ 2018-04-23 19:51  Blue233333  阅读(144)  评论(0编辑  收藏  举报