#include <stdio.h>
#include <iostream>
#include <vector>
using namespace std;
vector<int>a[100005];
int s[100005];
int mx[100005];
int n;
void dfs(int x,int fa){
for(int i=0;i<a[x].size();i++){
if(a[x][i]!=fa){
dfs(a[x][i],x);
if(s[a[x][i]]>mx[x]) mx[x]=s[a[x][i]];
s[x]+=s[a[x][i]];
}
}
s[x]++;
mx[x]=max(mx[x],n-s[x]);
}
int main(){
int t;
cin>>t;
while(t--){
cin>>n;
for(int i=0;i<n-1;i++){
int x,y;
cin>>x>>y;
a[x].push_back(y);
a[y].push_back(x);
}
dfs(1,1);
int mi=2000000000;
for(int i=1;i<=n;i++){
if(mi>mx[i]) mi=mx[i];
}
int c=0,id[2]={0};
// cout<<mx[2]<<endl;
for(int i=1;i<=n;i++){
if(mi==mx[i]) id[c++]=i;
else a[i].clear();
mx[i]=0;
s[i]=0;
}
if(c==1) cout<<"1 "<<a[1][0]<<endl<<"1 "<<a[1][0]<<endl;
else{
int x=0;
while(a[id[1]][x]==id[0]) x++;
cout<<id[1]<<" "<<a[id[1]][x]<<endl;
cout<<id[0]<<" "<<a[id[1]][x]<<endl;
a[id[1]].clear();
}
a[id[0]].clear();
}
return 0;
}
codeforces 1406C
最新推荐文章于 2024-10-04 20:45:38 发布