func_code_string: #include<bits/stdc++.h>   #define fort(i,a,b) for(long long i=a;i<=b;i++)   #define forn(i,a,b) for(long long i=a;i>=b;i--)   #define rep(i,a,b) for(long long i=a;i<b;i++)   #define x first   #define y second   #define pb push_back   #define MP make_pair   using namespace std;   const long long  N=2e5+5;   long long  s1,s2,d,c,test,n,l[N][20],f[N],kq[N],h[N],cnt[N],kt[N],timer,tin[N],tout[N];   vector<long long > a[N];   void dfs(long long  u,long long  pa)   {       tin[u]=++timer;       h[u]=h[pa]+1;       l[u][0]=pa;       cnt[u]++;       for(long long  v:a[u])           if (v!=pa)       {           dfs(v,u);           f[u]+=cnt[u]*cnt[v];           cnt[u]+=cnt[v];       }       f[u]+=(n-cnt[u])*cnt[u];       tout[u]=++timer;   }   void build_lca()   {       fort(i,1,log2(n))        fort(j,1,n)         l[j][i]=l[l[j][i-1]][i-1];   }   long long  lca(long long  u,long long  v)   {       if (h[u]<h[v]) swap(u,v);       forn(i,log2(h[u]),0)        if (h[l[u][i]]>=h[v]) u=l[u][i];       if (u==v) return u;       forn(i,log2(h[u]),0)        if (l[u][i]!=l[v][i])        {            u=l[u][i];            v=l[v][i];        }       return l[u][0];   }   void chinh(long long  x)   {       if (kt[x]) return;       kt[x]=1;       chinh(l[x][0]);   }   bool con(long v,long u)   {       return tin[u]<tin[v]&&tout[v]<tout[u];   }   int main()   {       ios_base::sync_with_stdio(0);cin.tie(0);cout.tie(0);       cin>>test;       while (test--)       {           cin>>n;           fort(i,1,n-1)           {               long long  u,v;               cin>>u>>v;               u++;v++;               a[u].pb(v);               a[v].pb(u);           }           dfs(1,0);           build_lca();           kq[1]=n*(n-1)/2-f[1];           kq[n+1]=1;           fort(i,1,n)            if (a[i].size()>2) kq[n+1]=0;           d=1;c=1;s1=0;s2=0;           kt[1]=1;           fort(i,2,n)            if (!kt[i])            {                if (d!=c)                {                   if (c==1)                   {                       if (lca(i,d)!=1&&lca(i,d)!=d&&kt[lca(i,d)])                       {                           kq[i]=s2*cnt[d];                           break;                       }                   } else                   {                       if (lca(i,d)!=d&&lca(i,c)!=c)                       {                           kq[i]=cnt[d]*cnt[c];                           break;                       }                   }                   if (con(i,d))                       {                              chinh(i);                           s1=cnt[d]-cnt[i];                           kq[i]=s1*s2;                           d=i;                           s1=cnt[d];                       } else                   if (con(i,c))                       {                           chinh(i);                           if (c==1) s2-=cnt[i];else                               s2=cnt[c]-cnt[i];                           kq[i]=s1*s2;                           c=i;                           s2=cnt[c];                       }               } else               {                   chinh(i);                   for(long long  v:a[1])                       if (!kt[v]) s2+=cnt[v];                   s2++;s1=cnt[i];                   kq[i]=f[1]-cnt[i]*s2;                   d=i;               }           }           fort(i,1,n+1) cout<<kq[i]<<   ;cout<<  n ;           fort(i,1,n) a[i].clear();           fort(i,1,n+1) kq[i]=0;           fort(i,1,n) cnt[i]=0;           fort(i,1,n)            fort(j,0,log2(n)) l[i][j]=0;           fort(i,1,n) kt[i]=0;           fort(i,1,n) f[i]=0;           timer=0;       }   }   