dfs搜一下
添加链接描述
#include<bits/stdc++.h>
#define ll long long
#define ios ios::sync_with_stdio(false);cin.tie(0); cout.tie(0);
using namespace std;
const int M=1e5+2,N=3005;
vector<int>g[M];
bool st[M];
int ans=1e9,n;
int dfs(int x)
{
st[x]=true;
int res=0,w=1;
for(int i=0;i<g[x].size();i++)
{
int v=g[x][i];
if(!st[v])
{
int s=dfs(v);
res=max(res,dfs(v));
w+=s;
}
}
res=max(res,n-w);
ans=min(ans,res);
return w;
}
int main()
{
cin>>n;
for(int i=0;i<n;i++)
{
int a,b;
cin>>a>>b;
g[a].push_back(b);
g[b].push_back(a);
}
dfs(1);
cout<<ans<<endl;
return 0;
}