#include<stdio.h>  
#include<stdlib.h>  
#include<string.h>  
#include<iostream>  
#include<algorithm>  
using namespace std;  
int c[30001];      
int find(int x)  
{  
    /* 超时 
    if(c[x]==x) 
    return x; 
    else 
    return find(c[x]);  
    */  
    /*  节省时间
    if(c[x]==x) 
    return x; 
    else 
    return c[x]=find(c[x]);  // 剪枝 
    */  
 return c[x]==x?x:c[x]=find(c[x]);  //节省时间
}  
void u(int x,int y)  
{  
    int a=find(x);  
    int b=find(y);  
    if(a!=b)  
      c[b]=a;  
} 

Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐