AcWing 836. 合并集合
原题链接
简单
作者:
Akoya
,
2021-04-27 13:51:33
,
所有人可见
,
阅读 245
#include <bits/stdc++.h>
using namespace std ;
const int N = 1e5 + 5 ;
int n , m ;
int p[N] ;
int find ( int x ) {
if ( p[x] != x ) p[x] = find ( p[x] ) ; //顺着族谱找祖宗
return p[x] ;
} // 查找祖宗
int main ( ) {
cin >> n >> m ;
for ( int i = 1 ; i <= n ; i ++ ) p[i] = i ;
while ( m -- ) {
int px , py ;
char s ;
cin >> s >> px >> py ;
if ( s == 'M' ) p[find ( px )] = find ( py ) ; //祖宗认新爹,变成一家人
else
if ( find ( px ) == find ( py ) ) cout << "Yes" << endl ; //看看祖宗一不一样
else cout << "No" << endl ;
}
return 0 ;
}