π λ¬Έμ
λͺ μ°κΈ°μ μ 2008λ λΆν° νλ°° μ¬μ μ μλ‘μ΄ μμνκΈ°λ‘ νμλ€. μ°μ νλ°° νλ¬Όμ λͺ¨μμ μ²λ¦¬νλ μ§νμ₯μ λͺ κ° λ§λ ¨νμ§λ§, νλ°° νλ¬Όμ΄ κ° μ§νμ₯λ€ μ¬μ΄λ₯Ό μ€κ° λ μ΄λ€ κ²½λ‘λ₯Ό κ±°μ³μΌ νλμ§ κ²°μ νμ§ λͺ»νλ€. μ΄λ€ κ²½λ‘λ₯Ό κ±°μΉ μ§ μ ν΄μ, μ΄λ₯Ό κ²½λ‘νλ‘ μ 리νλ κ²μ΄ μ¬λ¬λΆμ΄ ν μΌμ΄λ€.
μμλ κ·Έλνμμ κ΅΅κ² νμλ 1, 2, 3, 4, 5, 6μ μ§νμ₯μ λνλΈλ€. μ μ κ°μ κ°μ μ λ μ§νμ₯κ°μ νλ¬Ό μ΄λμ΄ κ°λ₯ν¨μ λνλ΄λ©°, κ°μ€μΉλ μ΄λμ 걸리λ μκ°μ΄λ€. μ΄λ‘λΆν° μ»μ΄λ΄μΌ νλ κ²½λ‘νλ λ€μκ³Ό κ°λ€.
κ²½λ‘νλ ν μ§νμ₯μμ λ€λ₯Έ μ§νμ₯μΌλ‘ μ΅λ¨κ²½λ‘λ‘ νλ¬Όμ μ΄λμν€κΈ° μν΄ κ°μ₯ λ¨Όμ κ±°μ³μΌ νλ μ§νμ₯μ λνλΈ κ²μ΄λ€. μλ₯Ό λ€μ΄ 4ν 5μ΄μ 6μ 4λ² μ§νμ₯μμ 5λ² μ§νμ₯μΌλ‘ μ΅λ¨ κ²½λ‘λ₯Ό ν΅ν΄ κ°κΈ° μν΄μλ μ μΌ λ¨Όμ 6λ² μ§νμ₯μΌλ‘ μ΄λν΄μΌ νλ€λ μλ―Έμ΄λ€.
μ΄μ κ°μ κ²½λ‘νλ₯Ό ꡬνλ νλ‘κ·Έλ¨μ μμ±νμμ€.
πμ λ ₯
첫째 μ€μ λ μ nκ³Ό mμ΄ λΉ μΉΈμ μ¬μ΄μ λκ³ μμλλ‘ μ£Όμ΄μ§λ€. nμ μ§νμ₯μ κ°μλ‘ 200μ΄νμ μμ°μ, mμ μ§νμ₯κ° κ²½λ‘μ κ°μλ‘ 10000μ΄νμ μμ°μμ΄λ€. μ΄μ΄μ ν μ€μ νλμ© μ§νμ₯κ° κ²½λ‘κ° μ£Όμ΄μ§λλ°, λ μ§νμ₯μ λ²νΈμ κ·Έ μ¬μ΄λ₯Ό μ€κ°λλ° νμν μκ°μ΄ μμλλ‘ μ£Όμ΄μ§λ€. μ§νμ₯μ λ²νΈλ€κ³Ό κ²½λ‘μ μμμκ°μ λͺ¨λ 1000μ΄νμ μμ°μμ΄λ€.
πμΆλ ₯
μμλ κ²κ³Ό κ°μ νμμ κ²½λ‘νλ₯Ό μΆλ ₯νλ€.
π λ¬Έμ νμ΄
νλ‘μ΄λ μμ μκ³ λ¦¬μ¦μ μ¬μ©νμ¬ μ΅λ¨κ²½λ‘λ₯Ό κ°±μ ν λ λ°©λ¬Έν΄μΌν λ Έλμ λ²νΈλ κ°μ΄ κ°±μ νμ¬ λ¬Έμ λ₯Ό ν΄κ²°νμλ€.
μΌλ°μ μΈ νλ‘μ΄λ μμ ꡬν μ½λμ iμμ jλ‘ κ°λ κ²λ³΄λ€ i -> x -> j, xλ₯Ό κ±°μ³ κ°λ κ²μ΄ λΉ λ₯Ό λ κ²½λ‘λ route[i][j] = route[i][x] μ΄λ κ² μ€μ ν΄μ€λ€.
π» μ½λ
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 | import sys input = sys.stdin.readline INF = int(1e9) n,m = map(int,input().split()) graph = [[INF] * (n+1) for _ in range(n+1)] route = [[j for j in range(n+1)] for i in range(n+1)] for _ in range(m): a,b,c = map(int,input().split()) graph[a][b] = min(graph[a][b], c) graph[b][a] = min(graph[b][a], c) for x in range(1, n+1): graph[x][x] = 0 route[x][x] = "-" for i in range(1, n+1): for j in range(1, n+1): if graph[i][x] + graph[x][j] < graph[i][j]: graph[i][j] = graph[i][x] + graph[x][j] route[i][j] = route[i][x] for i in range(1, n+1): for j in range(1, n+1): print(route[i][j], end=' ') print() | cs |
π μνμ°©μ€
λ¦¬λ²€μ§ μ±κ³΅μ΄λ€.
νλ Έλ μ΄μ λ route[i][j] = route[i][x] λ‘ μ€μ νκ² μλλΌ, route[i][j] = x λ‘ μ€μ νμλ€.
λ¬Έμ λ μ΅λ¨κ²½λ‘ κ°±μ λ λ κ°μ΄ κ²½λ‘λ κ°±μ λμ§ μλ κ²μ΄μλ€.
μ΄κΈμ λμμ λ°μ ν΄κ²°νμλ€.
π λ¬Έμ λ§ν¬ νλ°°
'Problem Solving > λ°±μ€' μΉ΄ν κ³ λ¦¬μ λ€λ₯Έ κΈ
[λ°±μ€] 16724λ² νΌλ¦¬ λΆλ μ¬λμ΄ (1) | 2023.03.10 |
---|---|
[λ°±μ€] 1766λ²: λ¬Έμ μ§ (0) | 2023.01.13 |
[λ°±μ€] 2133λ² νμΌ μ±μ°κΈ° - νμ΄μ¬, μλ° (0) | 2022.12.20 |
[λ°±μ€] 1261λ²: μκ³ μ€ν (0) | 2022.11.23 |
[λ°±μ€] 16118λ² λ¬λΉ μ¬μ° - νμ΄μ¬ (0) | 2022.10.10 |