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分)--(并查集)的主要内容,如果未能解决你的问题,请参考以下文章
pat 1013 Battle Over Cities(25 分) (并查集)
1013 Battle Over Cities (25分) DFS | 并查集