728x90
μΆμ²: μ΄κ²μ΄ μ·¨μ μ μν μ½λ©ν μ€νΈλ€ with νμ΄μ¬
https://www.youtube.com/watch?v=acqm9mM1P6o&list=PLRx0vPvlEmdAghTr5mXQxGpHjWqSz0dgC&index=7
λ¬Έμ
- μ΄λ€ λλΌμλ Nκ°μ λμκ° μλ€. κ·Έλ¦¬κ³ κ° λμλ 보λ΄κ³ μ νλ λ©μμ§κ° μλ κ²½μ°, λ€λ₯Έ λμλ‘ μ 보λ₯Ό 보λ΄μ λ€λ₯Έ λμλ‘ ν΄λΉ λ©μμ§λ₯Ό μ μ‘ν μ μλ€.
- νμ§λ§ XλΌλ λμμμ YλΌλ γ΄λμλ‘ μ 보λ₯Ό 보λ΄κ³ μ νλ€λ©΄, λμ Xμμ Yλ‘ ν₯νλ ν΅λ‘κ° μ€μΉλμ΄ μμ΄μΌ νλ€. μλ₯Ό λ€μ΄ Xμμ Yλ‘ ν₯νλ ν΅λ‘λ μμ§λ§, Yμμ Xλ‘ ν₯νλ ν΅λ‘κ° μλ€λ©΄ Yλ Xλ‘ λ©μμ§λ₯Ό λ³΄λΌ μ μλ€. λν ν΅λ‘λ₯Ό κ±°μ³ λ©μμ§λ₯Ό λ³΄λΌ λλ μΌμ μκ°μ΄ μμλλ€.
- μ΄λ λ CλΌλ λμμμ μκΈ μν©μ΄ λ°μνλ€. κ·Έλμ μ΅λν λ§μ λμλ‘ λ©μμ§λ₯Ό 보λ΄κ³ μ νλ€. λ©μμ§λ λμ Cμμ μΆλ°νμ¬ κ° λμ μ¬μ΄μ μ€μΉλ ν΅λ‘λ₯Ό κ±°μ³, μ΅λν λ§μ΄ νΌμ Έλκ° κ²μ΄λ€.
- κ° λμμ λ²νΈμ ν΅λ‘κ° μ€μΉλμ΄ μλ μ λ³΄κ° μ£Όμ΄μ‘μ λ, λμ Cμμ λ³΄λΈ λ©μμ§λ₯Ό λ°κ² λλ λμμ κ°μλ μ΄ λͺ κ°μ΄λ©° λμλ€μ΄ λͺ¨λ λ©μμ§λ₯Ό λ°λ λ°κΉμ§ 걸리λ μκ°μ μΌλ§μΈμ§ κ³μ°νλ νλ‘κ·Έλ¨μ μμ±νμμ€.
λ¬Έμ 쑰건
- νμ΄ μκ°: 60λΆ
- μκ°μ ν: 1μ΄
- λ©λͺ¨λ¦¬ μ ν: 128MB
- μ λ ₯ 쑰건:
- μΆλ ₯ 쑰건: 첫째 μ€μ λμ Cμμ λ³΄λΈ λ©μμ§λ₯Ό λ°λ λμμ μ΄ κ°μμ μ΄ κ±Έλ¦¬λ μκ°μ 곡백μΌλ‘ ꡬλΆνμ¬ μΆλ ₯νλ€.
λ€μ΅μ€νΈλΌ μκ³ λ¦¬μ¦μΌλ‘ μΆλ°μ cλ‘λΆν° κ°κ°μ λ ΈλκΉμ§μ μ΅λ¨κ²½λ‘λ₯Ό λͺ¨λ ꡬνλ€.
μ΄λ μ λ ₯κ°μΌλ‘ μ£Όμ΄μ§ nκ³Ό mμ΄ λ§€μ° ν° μμ΄κΈ° λλ¬Έμ, μ°μ μμνμ νμ νμ©νλ€!!
μ΅λ¨κ²½λ‘λ₯Ό λͺ¨λ ꡬν ν, λλ¬ν μ μλ λ Έλμ κ°μμ κ·Έμ€ μ΅λ μμ μκ°μ κ΅¬ν΄ μΆλ ₯νλ€.
import sys
import heapq
INF = int(1e9)
input = sys.stdin.readline
#λμμ κ°μ, ν΅λ‘μ κ°μ, μΆλ°μ
n, m, c = map(int, input().split())
graph = [[] for i in range(n+1)]
cost = [INF] * (n+1)
for _ in range(m):
x,y,z = map(int,input().split())
#xμμ yλ‘ κ°λ λΉμ©μ΄ z
graph[x].append((y,z))
def dijkstra(c):
q=[]
heapq.heappush(q,(0,c))
cost[c] = 0
while q:
curCost, now = heapq.heappop(q)
if cost[now]<curCost:
continue
for i in graph[now]:
sum = curCost+i[1]
if sum < cost[i[0]]:
cost[i[0]]=sum
heapq.heappush(q,(curCost,i[0]))
dijkstra(c)
cnt=0 #λλ¬ κ°λ₯ν λ
Έλ κ°μ
result=0 #μ΅λμμμκ°
for i in range(1,n+1):
if cost[i]==0: #μμλ
Έλλ©΄ μ μΈ
continue
if cost[i]!=INF:
cnt += 1
result = max(result, cost[i])
print(cnt,result)
728x90
'μκ³ λ¦¬μ¦ λ¬Έμ νμ΄ > Shortest Path' μΉ΄ν κ³ λ¦¬μ λ€λ₯Έ κΈ
[λ°±μ€]1753λ²: μ΅λ¨κ²½λ‘ (0) | 2023.02.28 |
---|---|
[λ°±μ€]18352λ²: νΉμ 거리μ λμ μ°ΎκΈ° (0) | 2023.02.28 |
Floyd-Warshall μκ³ λ¦¬μ¦ κ΅¬ν(python) (0) | 2023.02.28 |
λ€μ΅μ€νΈλΌ μκ³ λ¦¬μ¦ κ΅¬ν (python) (0) | 2023.02.28 |
[μ΄μ½ν ]λ―Έλ λμ (0) | 2023.02.27 |