https://www.acmicpc.net/problem/1717
λ¬Έμ
μ΄κΈ°μ {0}, {1}, {2}, ... {n} μ΄ κ°κ° n+1κ°μ μ§ν©μ μ΄λ£¨κ³ μλ€. μ¬κΈ°μ ν©μ§ν© μ°μ°κ³Ό, λ μμκ° κ°μ μ§ν©μ ν¬ν¨λμ΄ μλμ§λ₯Ό νμΈνλ μ°μ°μ μννλ €κ³ νλ€.
μ§ν©μ νννλ νλ‘κ·Έλ¨μ μμ±νμμ€.
μ λ ₯
첫째 μ€μ n(\(1 \leq n \leq 1,000,000\)), m(\(1 \leq m \leq 100,000\))μ΄ μ£Όμ΄μ§λ€. mμ μ λ ₯μΌλ‘ μ£Όμ΄μ§λ μ°μ°μ κ°μμ΄λ€. λ€μ mκ°μ μ€μλ κ°κ°μ μ°μ°μ΄ μ£Όμ΄μ§λ€. ν©μ§ν©μ 0 a bμ ννλ‘ μ λ ₯μ΄ μ£Όμ΄μ§λ€. μ΄λ aκ° ν¬ν¨λμ΄ μλ μ§ν©κ³Ό, bκ° ν¬ν¨λμ΄ μλ μ§ν©μ ν©μΉλ€λ μλ―Έμ΄λ€. λ μμκ° κ°μ μ§ν©μ ν¬ν¨λμ΄ μλμ§λ₯Ό νμΈνλ μ°μ°μ 1 a bμ ννλ‘ μ λ ₯μ΄ μ£Όμ΄μ§λ€. μ΄λ aμ bκ° κ°μ μ§ν©μ ν¬ν¨λμ΄ μλμ§λ₯Ό νμΈνλ μ°μ°μ΄λ€. aμ bλ n μ΄νμ μμ°μ λλ 0μ΄λ©° κ°μ μλ μλ€.
μΆλ ₯
1λ‘ μμνλ μ λ ₯μ λν΄μ ν μ€μ νλμ© YES/NOλ‘ κ²°κ³Όλ₯Ό μΆλ ₯νλ€. (yes/no λ₯Ό μΆλ ₯ν΄λ λλ€)
νμ΄
parent[] λ³μλ₯Ό λμ΄μ κ°μ μ§ν©μ μν΄μλμ§ νμΈ βΌοΈ
ν©μ§ν©μ unionSet(int a, int b); ν¨μλ‘ parent[b] λ₯Ό parent[a]μ λμΌνκ² λ§λ€μ΄μ€λ€
μ½λ
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.StringTokenizer;
public class Main_BOJ_1717_μ§ν©μνν {
static int n, m;
static int[] parent;
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
StringBuilder sb = new StringBuilder();
StringTokenizer stringTokenizer = new StringTokenizer(br.readLine());
n = Integer.parseInt(stringTokenizer.nextToken());
m = Integer.parseInt(stringTokenizer.nextToken());
parent = new int[n+1];
for(int i = 0 ; i <= n ; i++)
parent[i] = i;
for(int i = 0 ; i < m; i++){
stringTokenizer = new StringTokenizer(br.readLine());
int input = Integer.parseInt(stringTokenizer.nextToken());
int a = Integer.parseInt(stringTokenizer.nextToken());
int b = Integer.parseInt(stringTokenizer.nextToken());
if(input == 0){
unionSet(a,b);
}
else{
if(find(a) == find(b))
sb.append("YES").append("\n");
else
sb.append("NO").append("\n");
}
}
System.out.print(sb);
}
private static void unionSet(int a, int b) {
parent[find(b)] = find(a);
}
private static int find(int a) {
if(a != parent[a])
parent[a] = find(parent[a]);
return parent[a];
}
}
'μκ³ λ¦¬μ¦ > λ°±μ€' μΉ΄ν κ³ λ¦¬μ λ€λ₯Έ κΈ
[ λ°±μ€ / BOJ 18405 ] κ²½μμ μ μΌ ( μλ° / JAVA ) (0) | 2021.10.28 |
---|---|
[ λ°±μ€ / BOJ 1715 ] μΉ΄λ μ λ ¬νκΈ° ( μλ° / JAVA ) (0) | 2021.10.28 |
[ λ°±μ€ / BOJ 20665 ] λ μμ€ κ±°λ¦¬λκΈ° ( μλ° / JAVA ) (0) | 2021.10.27 |
[ λ°±μ€ / BOJ 16928 ] λ±κ³Ό μ¬λ€λ¦¬ κ²μ ( μλ° / JAVA ) (0) | 2021.10.27 |
[ λ°±μ€ / BOJ 19816 ] μ«μ μΉ΄λ 2 ( μλ° / JAVA ) (0) | 2021.10.27 |