- Today
- Total
- database
- λ°±μ€
- tree
- μλ£κ΅¬μ‘°
- νλ‘κ·Έλλ¨Έμ€
- Graph
- μ‘Έμ μν
- λ€μ΅μ€νΈλΌ
- leetcode
- 벨λ§ν¬λ
- μλ°
- array
- λ¬Έλ²
- ꡬν
- λ°μ΄ν°λ² μ΄μ€
- μμμ λ ¬
- 그리λ
- λ°±μλ
- java
- MST
- PS
- BFS
- μΈν΄
- μλ°μμ μ
- pytorch
- dp
- Algorithm
- spring
- OOP
- CS
Partially Committed
[λ°±μ€ 11404] νλ‘μ΄λ λ³Έλ¬Έ
λ¬Έμ
https://www.acmicpc.net/problem/11404
n(2 ≤ n ≤ 100)κ°μ λμκ° μλ€. κ·Έλ¦¬κ³ ν λμμμ μΆλ°νμ¬ λ€λ₯Έ λμμ λμ°©νλ m(1 ≤ m ≤ 100,000)κ°μ λ²μ€κ° μλ€. κ° λ²μ€λ ν λ² μ¬μ©ν λ νμν λΉμ©μ΄ μλ€.
λͺ¨λ λμμ μ (A, B)μ λν΄μ λμ Aμμ Bλ‘ κ°λλ° νμν λΉμ©μ μ΅μκ°μ ꡬνλ νλ‘κ·Έλ¨μ μμ±νμμ€.
μ λ ₯
첫째 μ€μ λμμ κ°μ nμ΄ μ£Όμ΄μ§κ³ λμ§Έ μ€μλ λ²μ€μ κ°μ mμ΄ μ£Όμ΄μ§λ€. κ·Έλ¦¬κ³ μ μ§Έ μ€λΆν° m+2μ€κΉμ§ λ€μκ³Ό κ°μ λ²μ€μ μ λ³΄κ° μ£Όμ΄μ§λ€. λ¨Όμ μ²μμλ κ·Έ λ²μ€μ μΆλ° λμμ λ²νΈκ° μ£Όμ΄μ§λ€. λ²μ€μ μ 보λ λ²μ€μ μμ λμ a, λμ°© λμ b, ν λ² νλλ° νμν λΉμ© cλ‘ μ΄λ£¨μ΄μ Έ μλ€. μμ λμμ λμ°© λμκ° κ°μ κ²½μ°λ μλ€. λΉμ©μ 100,000λ³΄λ€ μκ±°λ κ°μ μμ°μμ΄λ€.
μμ λμμ λμ°© λμλ₯Ό μ°κ²°νλ λ Έμ μ νλκ° μλ μ μλ€.
μΆλ ₯
nκ°μ μ€μ μΆλ ₯ν΄μΌ νλ€. iλ²μ§Έ μ€μ μΆλ ₯νλ jλ²μ§Έ μ«μλ λμ iμμ jλ‘ κ°λλ° νμν μ΅μ λΉμ©μ΄λ€. λ§μ½, iμμ jλ‘ κ° μ μλ κ²½μ°μλ κ·Έ μ리μ 0μ μΆλ ₯νλ€.
μμ μ λ ₯ 1
5
14
1 2 2
1 3 3
1 4 1
1 5 10
2 4 2
3 4 1
3 5 1
4 5 3
3 5 10
3 1 8
1 4 2
5 1 7
3 4 2
5 2 4
μμ μΆλ ₯ 1
0 2 3 1 4
12 0 15 2 5
8 5 0 1 1
10 7 13 0 3
7 4 10 6 0
μ΅λ¨ 거리λ₯Ό ꡬν΄μΌ νλλ° λ Έλμ κ°μκ° μλ€(μ΅λ 100).
κ·Έλ¬λ©΄, νλ‘μ΄λ - μμ μκ³ λ¦¬μ¦μΌλ‘ ν΄κ²°μ΄ κ°λ₯νλ€.
νλ‘μ΄λ μμ μ O(V^3) = O(10^6) μΌλ‘ μκ°μ ν (1μ΄) μ λλνλ€.
μΆλ°μ§(A)μμ λμ°©μ§(B)λ‘ κ°λ μ΅λ¨ κ²½λ‘κ° μ‘΄μ¬ν κ²½μ°μ,
κ·Έ κ²½λ‘ μ¬μ΄μ μ‘΄μ¬νλ K λ Έλκ° μ‘΄μ¬νλ€κ³ κ°μ νμμ λ,
A-K-B κ²½λ‘ λν μ΅λ¨ κ²½λ‘λΌλ κ²μ μ΄μ©νλ©΄ λλ€.
μ£Όμν΄μΌ ν μ μ Infinite κ°μ μΆ©λΆν ν¬κ² ν΄μ£Όμ΄μΌ νλ€λ κ²μ΄λ€! (λ무 ν¬λ©΄ overflow λ°μ κ°λ₯νλκΉ μ‘°μ¬!)
import java.io.*;
import java.util.StringTokenizer;
public class Main {
static int graph[][];
public static void main(String[] args) throws IOException {
//System.setIn(new FileInputStream("src/input.txt"));
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
StringTokenizer stk;
int n = Integer.parseInt(br.readLine()); // λ
Έλ κ°μ
int m = Integer.parseInt(br.readLine()); // μμ§ κ°μ
graph = new int[n + 1][n + 1];
// μ΄κΈ°ν
for (int i = 1; i <= n; i++) {
for (int j = 1; j <= n; j++) {
if (i == j)
graph[i][j] = 0;
else
graph[i][j] = 10000000;
}
}
for (int i = 0; i < m; i++) {
stk = new StringTokenizer(br.readLine());
int st = Integer.parseInt(stk.nextToken());
int end = Integer.parseInt(stk.nextToken());
int cost = Integer.parseInt(stk.nextToken());
if (graph[st][end] > cost)
graph[st][end] = cost; // μ΄κΈ°ν
}
// νλ‘μ΄λ - μμ
μκ³ λ¦¬μ¦ O(v^3)
for (int k = 1; k <= n; k++) {
for (int s = 1; s <= n; s++) {
for (int e = 1; e <= n; e++) {
if (graph[s][e] > graph[s][k] + graph[k][e])
graph[s][e] = graph[s][k] + graph[k][e];
}
}
}
// μ λ΅ μΆλ ₯
for (int i = 1; i <= n; i++) {
for (int j = 1; j <= n; j++) {
if (graph[i][j] == 10000000)
bw.write("0 ");
else
bw.write(graph[i][j] + " ");
}
bw.write("\n");
}
bw.flush();
bw.close();
}
}
'π₯ Algorithm || λ¬Έμ νμ΄ > PS' μΉ΄ν κ³ λ¦¬μ λ€λ₯Έ κΈ
[λ°±μ€ 1389] μΌλΉ λ² μ΄μ»¨μ 6λ¨κ³ λ²μΉ (0) | 2023.01.19 |
---|---|
[λ°±μ€ 11403] κ²½λ‘ μ°ΎκΈ° (0) | 2023.01.19 |
[λ°±μ€ 1219] μ€λ―Όμμ κ³ λ―Ό (JAVA) (0) | 2023.01.18 |
[λ°±μ€ 11657] νμλ¨Έμ (JAVA) (0) | 2023.01.18 |
[λ°±μ€ 1854] Kλ²μ§Έ μ΅λ¨κ²½λ‘ μ°ΎκΈ° (JAVA) (0) | 2023.01.18 |