在这题中,一开始我的 dfs 写成了
void dfs(int u,int pa){
for(int i=0;i<G[u].size();++i){
int v=G[u][i].v;
if(v!=pa){dfs(v,u);}
else d[u]=d[pa]^G[u][i].val;
}
}
但在ACwing上 WA 了,接着我把 dfs 改成
void dfs(int u,int pa){
for(int i=0;i<G[u].size();++i){
int v=G[u][i].v;
if(v!=pa){d[v]=d[u]^G[u][i].val;dfs(v,u);}
}
}
就A了。
请问这两种方法有什么区别吗?