标签:blog os io for div ios log algorithm
并查集的水题,比赛时怎么都AC不了,后来发现是没有考虑先3 2 后1 2的情况,下次注意!
#include<iostream> #include<algorithm> #include<cstring> using namespace std; int x[30010]; int k[30010]; int num[30010]; int find(int y) { int r= y; while(x[r]!= r) { r= x[r]; } /*int i = y; while(i!= r) { int j = x[i]; x[i] = r; i = j; }*/ return r; } void merge(int a,int b) { a= find(a); b= find(b); if(a!= b) { x[a] = b; num[a]+=num[b]; num[b]=num[a]; } } int main() { int n ; cin >> n; while(n--) { for(int i =0; i< 30001;i++){k[i] = 0;num[i] = 1;} int a,b; cin >>a>> b; for(int i =1; i<= a;i++) { x[i] = i; } int p,q; for(int i =0;i< b;i++) { cin >> p>> q; merge(p,q); } int max = 0; //cout<< num[2]; for(int i =1; i<30010;i++) { if(num[i] > max) { max = num[i]; //cout<<num[i]; } } cout<< max<< endl; } return 0; }
标签:blog os io for div ios log algorithm
原文地址:http://www.cnblogs.com/DUANZ/p/3871455.html