View Code
 1 /*
 2 开始把这个题想复杂了,
 3 其实很简单:
 4 思路:
 5 找出所有度数为 1 的节点数,消除这些度数为1的节点至少需要多少遍
 6 原理:
 7 度数为 1 的节点只要把与之相连的那个节点去掉就成孤立的了
 8 因此我们再加一条边即使原来的那个邻接点坏了 还有一个边与之相连 
 9 */
10 
11 #include<iostream>
12 #include<cstdio>
13 #include<cstring> 
14 using namespace std; 
15 
16 short int a[10001];
17 
18 int main()
19 {
20   int i,x,y,n;
21   while(EOF!=scanf("%d",&n))
22    {
23      memset(a,0,sizeof(a));
24      n=n-1;
25      for(i=0;i!=n;++i)
26       {
27         scanf("%d%d",&x,&y);
28         a[x]++;
29         a[y]++;
30       }
31      int ct=0;
32      for(i=1;i<=n;++i)
33       if(1==a[i])ct++;
34      printf("%d\n",(ct+1)/2); 
35    }
36   system("pause");
37   return 0;
38 }

 

相关文章:

  • 2021-11-28
  • 2021-12-07
  • 2021-12-09
  • 2021-08-09
  • 2022-02-24
  • 2022-12-23
  • 2021-11-24
  • 2022-01-14
猜你喜欢
  • 2021-09-04
  • 2021-10-11
  • 2021-12-18
  • 2021-10-17
  • 2021-09-16
  • 2021-12-20
  • 2021-06-01
相关资源
相似解决方案