본문 바로가기
프로그래밍/Python

[Python][BOJ 6951] Packet Routing

by 김아잉 2023. 3. 13.
728x90

 

https://www.acmicpc.net/problem/6951

 

6951번: Packet Routing

The date is October 29th, 1969. Today, scientists at UCLA made history by exchanging data between two computers over a network. The transmission wasn't very spectacular: only the first two letters of the word login were received before the system crashed.

www.acmicpc.net

 

 엄청 쉬운 Floyd-warshall 문제이다. n개의 정점에 w개의 간선정보을 받고 계산 후 p개의 질문에 대답하면 되는 문제이다. 그냥 값 받고 양방향으로 가중치를 저장하고 플로이드 돌리고 저장되어 잇는 질문값의 최소거리를 출력하면 AC를 받는다.

 

코드는 아래에 있다.

더보기
import sys
input=sys.stdin.readline

n,w,p=map(int,input().split())

d=[[1e9 for _ in range(n+1)]for _ in range(n+1)]

def floid():
    for k in range(n+1):
        for i in range(n+1):
            for j in range(n+1):
                d[i][j]=min(d[i][j],d[i][k]+d[k][j])

for _ in range(w):
    x,y,z=map(int,input().split())
    d[x][y]=z
    d[y][x]=z

floid()

for _ in range(p):
    x,y=map(int,input().split())
    print(d[x][y])

 

728x90

'프로그래밍 > Python' 카테고리의 다른 글

[python] n차원 배열 만들기  (0) 2023.04.09
[Python][BOJ 2862] 수학 게임  (0) 2023.03.11
[Python][BOJ 14938] 서강그라운드  (0) 2023.03.11
[python][BOJ15973] 두 박스  (0) 2023.02.18
[python][BOJ1225] 이상한 곱셈  (0) 2023.02.13

댓글