程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> C++ >> C++入門知識 >> 九度教程第67題

九度教程第67題

編輯:C++入門知識

C語言源碼: [cpp]   #include<stdio.h>   #define maxsize 10000000   typedef struct tree   {       int parent;       int numchild;   }tree;   tree T[maxsize];   int findroot(int x)   {       int temp;       if(T[x].parent==-1)           return x;       else       {           temp=findroot(T[x].parent);           T[x].parent=temp;       }       return temp;   }   int main()   {       int n,a,b,i,roota,rootb,max;       while(scanf("%d",&n)!=EOF)       {           for(i=0;i<maxsize;i++)           {               T[i].parent=-1;               T[i].numchild=1;           }           while(n--)           {               scanf("%d %d",&a,&b);               a--;               b--;               roota=findroot(a);               rootb=findroot(b);               if(roota!=rootb)               {                   T[rootb].parent=roota;                   T[roota].numchild+=T[rootb].numchild;               }              }           max=0;           for(i=0;i<maxsize;i++)               if(T[i].numchild>max)                   max=T[i].numchild;           printf("%d\n",max);       }   }    

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved