Algorithm π§π»π»/λ°±μ€(BOJ)
[λ°±μ€,c++] 20040λ² - μ¬μ΄ν΄ κ²μ
dkswnkk
2022. 9. 7. 00:08
λ¬Έμ
20040λ²: μ¬μ΄ν΄ κ²μ
μ¬μ΄ν΄ κ²μμ λ λͺ μ νλ μ΄μ΄κ° μ°¨λ‘λλ‘ λμκ°λ©° μ§ννλ κ²μμΌλ‘, μ νλ μ΄μ΄κ° νμ λ²μ§Έ μ°¨λ‘λ₯Ό, ν νλ μ΄μ΄κ° μ§μ λ²μ§Έ μ°¨λ‘λ₯Ό μ§ννλ€. κ²μ μμ μ 0 λΆν° n − 1 κΉμ§ κ³ μ ν
www.acmicpc.net
μ½λ
#include <iostream>
using namespace std;
int parent[500001];
int n, m;
int find_parent(int x){
if(x == parent[x]) return x;
else return parent[x] = find_parent(parent[x]);
}
void union_parent(int a, int b){
a = find_parent(a);
b = find_parent(b);
if(a < b) parent[b] = a;
else parent[a] = b;
}
int main(){
ios_base::sync_with_stdio(false);
cin.tie(0);
cin>>n>>m;
int ans = 0;
for(int i=1; i<=n; i++) parent[i] = i;
for(int i=0; i<m; i++){
int a, b; cin>>a>>b;
if(find_parent(a) == find_parent(b)){
ans = i + 1;
break;
}
union_parent(a, b);
}
cout<<ans;
}
νμ΄
μ λμ¨ νμΈλ λ¬Έμ μ λλ€.
λ¨μνκ² κ·Έλ₯ λΆλͺ¨κ° κ°μ κ²½μ°μλ μ¬μ΄ν΄μ΄ μκΈ΄λ€λ λ§μ΄κΈ°μ μμλ₯Ό μΆλ ₯ν΄μ£Όκ³ , λΆλͺ¨κ° λ€λ₯΄λ€λ©΄ λΆλͺ¨λ₯Ό ν©μ³μ£Όλ©΄ λ©λλ€.