【LibreOJ109】【模板】並查集
並查集模板,就醬紫。
#include<iostream>
using namespace std;
#define mod 998244353
long long ans;
int fa[4000010];
int find(int x){ return fa[x]==x?x:fa[x]=find(fa[x]);}
void merge(int x,int y){x=find(x),y=find(y); if(x!=y)fa[x]=y;}
int main(){
ios::sync_with_stdio(false);
int n, m;
cin>>n>>m;
for(int i = 1; i <= n; i++)fa[i] = i;
for(int i = 1; i <= m; i++){
int op, u, v;
cin>>op>>u>>v;
if(op==0){
merge(u,v);
}else{
if(find(u)==find(v))ans = (ans*2+1)%mod;
else ans = (ans*2)%mod;
}
}
cout<<ans<<"\n";
return 0;
}
相關文章
- 寫模板, 並查集。並查集
- 並查集到帶權並查集並查集
- 【並查集】【帶偏移的並查集】食物鏈並查集
- 並查集(一)並查集的幾種實現並查集
- 3.1並查集並查集
- 並查集(小白)並查集
- 並查集(Union Find)並查集
- 並查集應用並查集
- The Door Problem 並查集並查集
- 並查集練習並查集
- 並查集的使用並查集
- 並查集—應用並查集
- 並查集跳躍並查集
- 各種並查集並查集
- 食物鏈(並查集)並查集
- 並查集(二)並查集的演算法應用案例上並查集演算法
- The Suspects-並查集(4)並查集
- [leetcode] 並查集(Ⅰ)LeetCode並查集
- [leetcode] 並查集(Ⅱ)LeetCode並查集
- [leetcode] 並查集(Ⅲ)LeetCode並查集
- 並查集演算法並查集演算法
- 並查集深度應用並查集
- 【轉】種類並查集並查集
- 並查集java實現並查集Java
- 並查集-Java實現並查集Java
- 並查集題目合集並查集
- 並查集以及應用並查集
- 並查集的應用並查集
- 暢通工程(並查集)並查集
- (Day3)並查集並查集
- 並查集擴充套件並查集套件
- 簡單易懂的並查集演算法以及並查集實戰演練並查集演算法
- 關於並查集問題並查集
- 並查集的應用2並查集
- 並查集の進階用法並查集
- 並查集(UnionFind)技巧總結並查集
- Wireless Network(並查集(裸))並查集
- 並查集應用總結並查集