Skip to content

Commit eabe458

Browse files
committed
[20251026] BOJ / G4 / Tree / 김민진
1 parent 2a047b8 commit eabe458

File tree

1 file changed

+78
-0
lines changed

1 file changed

+78
-0
lines changed

zinnnn37/202510/26 BOJ G4 Tree.md

Lines changed: 78 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,78 @@
1+
```java
2+
import java.io.*;
3+
import java.util.StringTokenizer;
4+
5+
public class BJ_13244_Tree {
6+
7+
private static final BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
8+
private static final BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
9+
private static final StringBuilder sb = new StringBuilder();
10+
private static StringTokenizer st;
11+
12+
private static int T, N, M;
13+
private static int[] parents;
14+
15+
public static void main(String[] args) throws IOException {
16+
T = Integer.parseInt(br.readLine());
17+
18+
while (T-- > 0) {
19+
init();
20+
sol();
21+
}
22+
bw.write(sb.toString());
23+
bw.flush();
24+
bw.close();
25+
br.close();
26+
}
27+
28+
private static void init() throws IOException {
29+
N = Integer.parseInt(br.readLine());
30+
M = Integer.parseInt(br.readLine());
31+
32+
parents = new int[N + 1];
33+
for (int i = 1; i < N + 1; i++) {
34+
parents[i] = i;
35+
}
36+
}
37+
38+
private static void sol() throws IOException {
39+
boolean isTree = true;
40+
for (int i = 0; i < M; i++) {
41+
st = new StringTokenizer(br.readLine());
42+
43+
int a = Integer.parseInt(st.nextToken());
44+
int b = Integer.parseInt(st.nextToken());
45+
46+
if (!union(a, b)) {
47+
isTree = false;
48+
}
49+
}
50+
51+
if (M != N - 1) {
52+
isTree = false;
53+
}
54+
sb.append(isTree ? "tree\n" : "graph\n");
55+
}
56+
57+
private static int find(int a) {
58+
if (parents[a] == a) return a;
59+
60+
return parents[a] = find(parents[a]);
61+
}
62+
63+
private static boolean union(int a, int b) {
64+
int rootA = find(a);
65+
int rootB = find(b);
66+
67+
if (rootA == rootB) return false;
68+
69+
if (rootA < rootB) {
70+
parents[rootB] = rootA;
71+
} else {
72+
parents[rootA] = rootB;
73+
}
74+
return true;
75+
}
76+
77+
}
78+
```

0 commit comments

Comments
 (0)