PTA:7-129 文件传输 (25分)--(并查集)

Posted zlzhu

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了PTA:7-129 文件传输 (25分)--(并查集)相关的知识,希望对你有一定的参考价值。

 

技术图片

 

 

输入样例 1:
5
C 3 2
I 3 2
C 1 5
I 4 5
I 2 4
C 3 5
S

输出样例 1:
no
no
yes
There are 2 components.

输入样例 2:
5
C 3 2
I 3 2
C 1 5
I 4 5
I 2 4
C 3 5
I 1 3
C 1 5
S

输出样例 2:
no
no
yes
yes
The network is connected.

 

AC代码如下:

#include<bits/stdc++.h>
using namespace std;
int n,p[10009];
int find(int x){
	if(x==p[x]) return x;
	return p[x]=find(p[x]);
}

void merge(int x, int y){
	int xx=find(x), yy=find(y);
	if(xx!=yy) p[xx]=yy; 
}
 
int main(){
	cin>>n;
	for(int i=1; i<=n; i++) p[i]=i;
	getchar;
	char ch=‘a‘;
	int a,b;
	while(1){
		cin>>ch;
		if(ch==‘S‘) break;
		cin>>a>>b;
		if(ch==‘C‘){
			if(find(a)==find(b)) cout<<"yes
";
			else cout<<"no
";
		}else if(ch==‘I‘){
			merge(a,b);
		}
	}
	int cnt=0;
	for(int i=1; i<=n; i++){
		if(i==find(i)) cnt++;
	}
	if(cnt==1) cout<<"The network is connected.
";
	else cout<<"There are "<<cnt<<" components.
";
	return 0;
}

参考链接:https://blog.csdn.net/weixin_43581819/article/details/104119509

以上是关于PTA:7-129 文件传输 (25分)--(并查集)的主要内容,如果未能解决你的问题,请参考以下文章

7-25 朋友圈 (25分)-并查集

pat 1013 Battle Over Cities(25 分) (并查集)

1013 Battle Over Cities (25分) DFS | 并查集

1118 Birds in Forest (25分) 并查集

L2-007 家庭房产 (25分) 并查集

1114 Family Property (25 分)难度: 中/ 知识点: 并查集