poj 2524 Ubiquitous Religions --- 并查集

2014-11-24 10:15:39 · 作者: · 浏览: 0

并查集求不相交集合的个数 模板


#include 
  
   
#include 
   
     #include 
    
      #include 
     
       #include 
      
        #include 
       
         #include 
        
          #include 
         
           #include 
           #define inf 0x3f3f3f3f #define ll __int64 using namespace std; int r[50005],n,m,vis[50005],ans; int root(int a) { if(r[a]==a) return a; else return r[a]=root(r[a]); } void merge(int a,int b) { int ra,rb; ra=root(a); rb=root(b); if(ra==rb) return; ans--;//若两个属于同一集合 则合并 并把总数减1 if(ra