1 条题解

  • 0
    @ 2025-11-30 16:27:50

    C :

    #include<stdio.h>
    
    int xx[200]={0},t=1,n;
    
    void he(int n,int m){
    	if(xx[n]==0&&xx[m]==0)
    		xx[n]=xx[m]=t++;
    	else if(xx[n]==0)
    		xx[n]=xx[m];
    	else if(xx[m]==0)
    		xx[m]=xx[n];
    	else{
    		for(int i=0;i<=n;i++)
    			if(m!=i&&xx[i]==xx[m])
    				xx[i]=xx[n];
    		xx[m]=xx[n];
    	}
    }
    
    int main(){
    	int x1,x2,k,i,cc[1000]={0},m1;
    	scanf("%d%d",&n,&k);
    	for(i=0;i<k;i++){
    		scanf("%d%d",&x1,&x2);
    		he(x1,x2);
    	}
    	for(i=1;i<=n;i++)
    		cc[xx[i]]++;
    	for(i=1;i<1000;i++){
    		if(cc[i]!=0)cc[0]++;
    		if(cc[i]>m1)m1=cc[i];
    	}
    	if(m1==0)m1=1;
    	printf("%d %d\n",cc[0],m1);
    	return 0;
    }
    

    C++ :

    /*21174: 家庭问题
    时间限制: 1 Sec  内存限制: 128 MB
    
    题目描述
    有n个人,编号为1,2,……n,另外还知道存在K个关系。一个关系的表达为二元组(α,β)形式,表示α,β为同一家庭的成员。
    当n,k和k个关系给出之后,求出其中共有多少个家庭、最大的家庭中有多少人?
    例如:n=6,k=3,三个关系为(1,2),(1,3),(4,5)
    此时,6个人组成三个家庭,即:{1,2,3}为一个家庭,{4,5}为一个家庭,{6}单独为一个家庭,第一个家庭的人数为最多。
    输入
    文件的第一行为n,k二个整数(1≤n≤100)(用空格分隔)
    接下来的k行,每行二个整数(用空格分隔)表示关系
    输出
    二个整数(分别表示家庭个数和最大家庭人数)
    样例输入
    6  3
    1  2
    1  3
    4  5
    样例输出
    3 3
    */
    
    
    #include<iostream>
    #include<cstdio>
    #include<cstring>
    #include<algorithm>
    
    using namespace std;
    int n,k,ans,ans1;
    int a[105],book[105];
    int getfa(int i){
    	if(i==a[i]){
    		return i;
    	}
    	a[i]=getfa(a[i]);
    	return a[i];
    }
    int main(){
    	cin>>n>>k;
    	for(int i=1;i<=n;i++){
    		a[i]=i;
    	}
    	for(int i=1;i<=k;i++){
    		int x,y;
    		cin>>x>>y;//两者有联系 
    		x=getfa(x);
    		y=getfa(y);
    		a[y]=x;//靠左合并 
    	}
    	for(int i=1;i<=n;i++){
    		a[i]=getfa(a[i]);
    		if(!book[a[i]]){//ans:新的家庭 
    			book[a[i]]=1;
    			ans++;
    		}
    		else{
    			book[a[i]]++;
    		}
    		if(book[a[i]]>ans1){
    			ans1=book[a[i]];//ans1:家庭成员 
    		}
    	}
    	cout<<ans<<' '<<ans1;
    	return 0;
    }
    
    • 1

    信息

    ID
    1411
    时间
    1000ms
    内存
    128MiB
    难度
    (无)
    标签
    递交数
    0
    已通过
    0
    上传者