简化题意 m次询问,每次询问x的子树中,与x节点距离不超过y的节点的子树和.n,m≤300,000. 思路 按照dfs序排序,每次将一个点的答案塞到第depu的位置,这样得到一个前缀和,每次询问作减法即可. 可持久化线段树. 代码 #include<bits/stdc++.h> using namespace std; ; typedef long long int ll; ll n,m,x,y,sum[maxn],dep[maxn],cur,t[maxn*],root[maxn*],fa[m…