int head[M],nxt[M],to[M],val[M];
void add(int x,int y,int z){nxt[++t]=head[x];head[x]=t;to[t]=y;val[t]=z;}
遍历
void dfs(int now,int fa)
{
for(int i=head[now];i>0;i=nxt[i]){
int u=to[i];
if(u!=fa){
dfs(u,now);
}
}
}