好的,您等等,这题我最近正好做过
by Evan_S @ 2021-07-12 21:33:58
```cpp
void dfs1(int u){
siz[u]=1;
son[u]=Maxn-1;
for(int i=head[u];i;i=nxt[i]){
int v=to[i];
if(v==father[u])continue;
dep[v]=dep[u]+1;
dfs1(v);
siz[u]+=siz[v]+1;//这里是不是不用+1
if(siz[v]>siz[son[u]]){
son[u]=v;
}
}
return ;
}
```
by Evan_S @ 2021-07-12 21:36:33
@[Wens](/user/213196) 我刚 a 了,但看到的时候同学已经帮您改好了
by pldzy @ 2021-07-12 21:41:02
那就没问题了
by Evan_S @ 2021-07-12 21:46:53
@[宋卓昕](/user/194465) 那个地方加不加1并不影响,这里只要求出siz的大小关系就行了,改了还是有问题,但无论如何,依然要谢谢你
by Wens @ 2021-07-13 07:29:43
那应该是你main函数求答案的时候,还有拆分询问的时候有问题
by Evan_S @ 2021-07-13 07:33:39
这里建议您去看看题解(非抄)
by Evan_S @ 2021-07-13 07:34:32
@[Wens](/user/213196) 你在拆分询问的时候需要把他们存在同一个数组里
by Evan_S @ 2021-07-13 07:35:18
@[Wens](/user/213196) 还有最后计算每个拆分出来的询问的时候,应该是枚举每个询问,然后因为排好序了,所以我们可以接着上面的一个询问。
by Evan_S @ 2021-07-13 07:37:27
不过好像您这么写没有问题
by Evan_S @ 2021-07-13 07:40:30