打线段树合并模板过程中遇到的很玄学的问题
这只有50分:
void dfs2(int u){
for(int v:G[u]){
if(v==pa[u])continue;
dfs2(v);
merge(tree[u],tree[v]);
}
}
但是这样就满分了
void dfs2(int u){
if(!tree[u])tree[u]=++cnt;
for(int v:G[u]){
if(v==pa[u])continue;
dfs2(v);
merge(tree[u],tree[v]);
}
}
有没有大佬知道为啥
完整代码