T3 式神
思路:
对于每一个节点维护 l , r , l e n ( 长 度 ) , n u m ( 子 区 间 个 数 ) , l,r,len(长度),num(子区间个数), l,r,len(长度),num(子区间个数),
l c o s ( 左 端 点 为 l 的 方 案 数 ) , r c o s ( 右 端 点 为 r 的 方 案 数 ) , a n s ( 方 案 数 ) lcos(左端点为l的方案数),rcos(右端点为r的方案数),ans(方案数) lcos(左端点为l的方案数),rcos(右端点为r的方案数),ans(方案数)。
对于转移有:
t r e e [ p ] . l e n = t r e e [ l c h ] . l e n + t r e e [ r c h ] . l e n tree[p].len=tree[lch].len+tree[rch].len tree[p].len=tree[lch].len+tree[rch].len
t r e e [ p ] . n u m = t r e e [ l c h ] . n u m + t r e e [ r c h ] . n u m + t r e e [ l c h ] . l e n ∗ t r e e [ r c h ] . l e n tree[p].num=tree[lch].num+tree[rch].num+tree[lch].len*tree[rch].len tree[p].