Lang:G++
Edit12345678910111213141516171819202122232425262728293031#include<cstdio>#include<iostream>#include<algorithm>#include<vector>#include<cstring>using namespace std;vector<int >g[10005];int a[105][10005];int n,m;void dfs(int u,int pa,int d){a[u][m]=d;int pp=g[u].size();int f=0;for(int i=0;i<pp;i++){if(g[u][i]!=pa){if(f==0){for(int j=0;j<m;j++){a[g[u][i]][j]=a[u][j];}dfs(g[u][i],u,d+1);f++;}else{for(int j=0;j<=m;j++){a[g[u][i]][j]=a[u][j];}m++;dfs(g[u][i],u,1);}}}