LG 3899 [湖南集训]谈笑风生

zcmimi at 
查看原题'" class='mdui-btn mdui-btn-raised'>点击加载点击跳转$a$是确定的,考虑$b$的情况:是$a$的祖先可以作为$b$的点的数量是$\min(d_x,k)$($d_x$指$x$的深度),$a$的子树中除$a$外其他点都可以作为$c$总方案数为$\min(d_x,k)\times(siz_x-1)$在$a$子树中对于每个$b$,可以作为$c$的点的数量为$siz_b-1$我们可以 dfs 序,记录当前区间中深度为$d$的数然后用主席树(可持久化权值线段树)维护这样就可以查询深度$\in [d_a+1,d_a+k]$的所有'点的子树大小-1'的和……