用线段树对每种长度的区间维护权值和. 考虑区间[l,r]+1对长度为k的区间的贡献,显然其为Σk-max(0,k-i)-max(0,k-(n-i+1)) (i=l~r). 大力展开讨论.首先变成Σk-Σmax(0,k-i)-Σmax(0,k-(n-i+1)) (i=l~r). 第一部分是一个常数,线段树上是加了一个等差数列.打上标记即可. 后面两部分本质相同,现考虑Σmax(0,k-i) (i=l~r).去掉max,即Σk-i (i=l~min(r,k)).根据r和k的大小关系讨论.若r<=k,…