在线询问树上$\sum_{i=1}^n dis(x,i),a[i]\in[l,r]$。
$degree\leq 3$
显然$ans=query(x,r)-query(x,l-1)$
查询一颗$u$子树上是,$dis(u,x)\times Num[u][r]+sum[u][r]-u关于x那颗子树$。
由于点的度不大,暴力计算$3$颗子树的贡献。
- 统计$sum[u][r]$,可以排好序,计算前缀和即可。
- 需要关系$num[u]+=(a[u]<=r)$
- 开始的时候需要计算$x$子树的贡献
代码
1 |
|