#719. NOIP2016TG-26
NOIP2016TG-26
当前没有测试数据。
- (阅读程序写结果)
#include<iostream>
#include<cstring>
using namespace std;
int map[100][100];
int sum[100],weight[100];
int visit[100];
int n;
void dfs(int node){
visit[node]=1;
sum[node]=1;
int v,maxw=0;
for(v=1;v<=n;v++){
if(!map[node][v]||visit[v])
continue;
dfs(v);
sum[node]+=sum[v];
if(sum[v]>maxw)
maxw=sum[v];
}
if(n-sum[node]>maxw)
maxw=n-sum[node];
weight[node]=maxw;
}
int main(){
memset(map,0,sizeof(map));
memset(sum,0,sizeof(sum));
memset(weight,0,sizeof(weight));
memset(visit,0,sizeof(visit));
cin>>n;
int i,x,y;
for(i=1;i<n;i++){
cin>>x>>y;
map[x][y]=1;
map[y][x]=1;
}
dfs(1);
int ans=n,ansN=0;
for(i=1;i<=n;i++)
if(weight[i]<ans){
ans=weight[i];
ansN=i;
}
cout<<ansN<<" "<<ans<<endl;
return 0;
}
输入:
11
1 2
1 3
2 4
2 5
2 6
3 7
7 8
7 11
6 9
9 10
输出:{{ input(1) }}