题目地址:点击打开链接
思路:求出度数为1的点,如果为偶数,正好让他们22互连,如果为奇数则22互连之后,剩下的一个随意连
AC代码:
#include <iostream>
#include <cstdio>
#include <cstdlib>
#include <algorithm>
#include <queue>
#include <stack>
#include <map>
#include <cstring>
#include <climits>
#include <cmath>
#include <cctype>
using namespace std;
int visit[10000];
int main()
{
int n;
int a,b,i;
while(scanf("%d",&n) != EOF)
{
memset(visit,0,sizeof(visit));
int sum = 0;
for(i=1; i<=n-1; i++)
{
scanf("%d%d",&a,&b);
visit[a]++;
visit[b]++;
}
for(i=1; i<=n; i++)
{
if(visit[i] == 1)
sum++;
}
printf("%d\n",sum/2+sum%2);
}
return 0;
}