第二篇题解,我在写点分树模板的时候发现了这种写法有锅。
比如对于下面的数据(点分树样例):
8 1
1 2 1
1 3 1
2 4 1
2 5 1
3 6 1
3 7 1
3 8 1
1
这样神蛙会把 1 划分成第二层的根(第一层根是3)
各位可以自行试一试,眼见为实。
而且我发现了他代码中具体的错误:
void solve(int u){
vis[u]=true;
calc(u);
for(re int i=head[u];i;i=edge[i].nxt){
int v=edge[i].to;
if(vis[v])continue;
root=0;
get_root(v,0,siz[v]);
solve(root);
}
}
因为siz[v]不是真的子树大小,所以锅了
希望能有人看看是不是真的有问题,毕竟神蛙的题解很多人在看,本人是蒟蒻,如果我错了轻喷