【模板·並查集】洛谷 P3367 【模板】並查集
阿新 • • 發佈:2018-12-17
題目:並查集
思路: 複習…… 第一次提交忘寫路徑壓縮T了…… 結論:打過再多遍的模板也要檢查一下啊……
程式碼:
#include<bits/stdc++.h>
using namespace std;
#define maxn 10000
#define read(x) scanf("%d",&x)
int n,m;
int fa[maxn+5];
int find(int x) {
return fa[x]==0?x:fa[x]=find(fa[x]);
}
void merge(int x,int y){
int fa1=find(x),fa2=find(y);
if (fa1==fa2) return ;
fa[fa1]=fa2;
}
bool query(int x,int y) {
int fa1=find(x),fa2=find(y);
if(fa1==fa2) return true;
return false;
}
int main() {
read(n),read(m);
while(m--) {
int opr,x,y;
read(opr),read(x),read(y);
if(opr==1) {
merge(x,y);
} else {
if(query(x,y)) printf("Y\n");
else printf("N\n");
}
}
return 0;
}