Skip to content

Commit 32ce03b

Browse files
Edited DSU naming
1 parent 217db0e commit 32ce03b

File tree

1 file changed

+12
-22
lines changed

1 file changed

+12
-22
lines changed

DSU.cpp

Lines changed: 12 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -1,53 +1,43 @@
1-
#pragma GCC optimize ("O3")
2-
#include <bits/stdc++.h>
1+
#include <cstdio>
2+
#include <numeric>
33

44
using namespace std;
5-
const int N = (1<<17) , M = (1<<14), OO = 0x3f3f3f3f;
5+
const int N = 1e5+5 , M = (1<<14), OO = 0x3f3f3f3f;
66

77
int n, q;
88
int t, a, b;
99

1010
int parent[N];
11+
inline void init(){
12+
iota(parent, parent+N, 0);
13+
}
1114

1215
int findParent(int x){
1316
if(parent[x] == x) return x;
1417
return parent[x] = findParent(parent[x]);
1518
}
1619

17-
bool sameSet(int a, int b){
20+
inline bool sameSet(int a, int b){
1821
return findParent(a) == findParent(b);
1922
}
2023

21-
void unionSet(int a, int b){
22-
int pa = findParent(a), pb = findParent(b);
23-
if(pa == pb) return;
24-
parent[pb] = pa;
24+
inline void merge(int a, int b){
25+
a = findParent(a), b = findParent(b);
26+
if(a == b) return;
27+
parent[b] = a;
2528
}
2629

27-
void init(){
28-
for(int i = 0 ; i <= n ; ++i) parent[i] = i;
29-
}
3030

3131
int main(){
32-
// freopen("i.in", "rt", stdin);
33-
// freopen("o.out", "wt", stdout);
3432
scanf("%d %d", &n, &q);
3533
init();
3634
while(q--){
3735
scanf("%d %d %d", &t, &a, &b);
3836
if(t){ //Make Friends
39-
unionSet(a, b);
37+
merge(a, b);
4038
}else{ //Are Friends?
4139
printf("%d\n", sameSet(a, b));
4240
}
4341
}
4442
return 0;
4543
}
46-
47-
48-
49-
50-
51-
52-
53-

0 commit comments

Comments
 (0)