• hdu 1856 More is better


    题目链接

    #include"stdio.h"
    int set[10000001],sum[10000001],ans,max;
    int find(int x)
    {
    	int r,i;
    	r=x;
    	while(r!=set[r])
    		r=set[r];
        while(x!=set[x])
    	{
    		i=set[x];
    		set[x]=r;
    		x=i;
    	}
    	return r;
    }
    void merge(int x,int y)
    {
    	int fx,fy;
    	fx=find(x);
    	fy=find(y);
    	set[fx]=fy;
    }
    int main()
    {
    	int i,x,y,n,t;
    	while(scanf("%d",&n)!=EOF)
    	{
    		if(n==0)
    		{
    			printf("1\n");
    			continue;
    		}
    		for(i=1;i<=10000000;i++)
    		{
    			set[i]=i;
    			sum[i]=0;
    		}
    		max=-1;
    		for(i=0;i<n;i++)
    		{
    			scanf("%d%d",&x,&y);
    			if(x>max) max=x;
    			if(y>max) max=y;
    			merge(x,y);
    		}
    		ans=-1;
    		for(i=1;i<=max;i++)
    		{
    			t=find(i);
    			sum[t]++;
    			if(sum[t]>ans)
    				ans=sum[t];
    		}
    		printf("%d\n",ans);
    	}
    	return 0;
    }
    


  • 相关阅读:
    css圆,背景,img填满等样式
    MySQL双日志
    MySQL分层和查询数据的流程
    ZJNU 2345
    ZJNU 2342
    ZJNU 2340/2341/2343
    ZJNU 2235
    ZJNU 2226
    ZJNU 2212
    ZJNU 2208
  • 原文地址:https://www.cnblogs.com/yyf573462811/p/6365407.html
Copyright © 2020-2023  润新知