vector <int> G[maxn]; void read_tree(){ int u,v; scanf("%d",&n); for(int i = 0; i < n-1; i++){ scanf("%d%d",&u,&v); G[u].push_back(v);///输入u相邻的点v G[v].push_back(u); } } int p[maxn]; memset(p,sizeof(p),-1); void dfs(int u,int fa){///递归转化为以u为根的子树,u 的父节点为fa int d= G[u].size();///结点u的相邻点个数 for(int i = 0; i < d;i++){ int v = G[u][i];///结点u的第i个相邻点v if(v != fa) dfs(v, p[v] = v);///把v的父节点设为u,然后递归转化为以v为根的子树 } }
浙公网安备 33010602011771号