1. 程式人生 > >【rqnoj 343】mty的考驗

【rqnoj 343】mty的考驗

一支 100% str 找到 col log 輸出格式 規模 表示

題目描述

啊!幾經周折.mty終於找到了他的偶像.他就是….fyc!

可是fyc這樣的高級人士可不喜歡一個人總是纏著他.於是他出了一道難題想考考mty.fyc有幾個手下:陳樂天,舒步雞,胡巍……現在fyc要去和別人fight,需要組建一值軍隊.軍隊的士兵在fyc的手下裏選.

要組建一個軍隊,必修滿足軍隊中的每個人之間都有直接或間接的朋友關系.

那麽mty現在需要組建一支在滿足上述情況下的人數最多的軍隊.

問題規模:

對於100%的數據,1<=n<=1000,1<=m<=500.

輸入格式第一行,兩個數,n,m.(n表示fyc有幾個手下m表示有m對朋友關系).

一下m行,每行兩個數.x[i],y[i].表示編號為x[i],y[i]的人是朋友.

輸出格式一個數,表示人數最多的軍隊的人數.

樣例輸入

5 3
1 2
2 3
3 4

樣例輸出

4
說明:1,2,3,4可組成一直軍隊.

 1 #include<cstdio>
 2 #include<iostream>
 3 #include<cstring>
 4 using namespace std;
 5 int n,m,a,b,c[1005],fa[1005];
 6 int read(){
 7     int x=0,f=1;char ch=getchar();
 8     while(ch<0||ch>9){if(ch==
-)f=-1;ch=getchar();} 9 while(ch>=0&&ch<=9){x=x*10+ch-0;ch=getchar();} 10 return x*f; 11 } 12 int find(int n){ 13 if(fa[n]==n) return n; 14 else return fa[n]=find(fa[n]); 15 } 16 void unite(int x,int y){ 17 fa[y]=x; 18 } 19 int main(){ 20 n=read(),m=read(); 21
for(int i=1;i<=n;i++) fa[i]=i; 22 for(int i=1;i<=m;i++){ 23 a=read(),b=read(); 24 unite(find(a),find(b)); 25 } 26 int ans=0; 27 for(int i=1;i<=n;i++){ 28 c[find(i)]++; 29 ans=max(ans,c[find(i)]); 30 } 31 printf("%d\n",ans); 32 return 0; 33 }

【rqnoj 343】mty的考驗