어읽로꾸거
BOJ 6118 숨바꼭질 본문
백준 6118 링크
https://www.acmicpc.net/problem/6118
풀이
그냥 다익스트라
코드
#파이썬pq는 최소힙
import heapq as pq
input = __import__('sys').stdin.readline
n,m = map(int, input().split())
con = [[] for _ in range(n+1)]
dp=[float("inf")]*(n+1)
for _ in range(m):
a,b = map(int, input().split())
con[a].append(b);con[b].append(a)
q=[(0,1)]
dp[1]=dp[0]=0
while q:
cost,n=pq.heappop(q)
if cost!=dp[n]:continue
for i in con[n]:
if dp[i]>cost+1:
dp[i]=cost+1
pq.heappush(q,(cost+1, i))
mx=max(dp)
cnt=0
ch=True
for i in range(1,n+1):
if mx==dp[i]:
cnt+=1
if ch:
print(i,end=' ')
ch=False
print(mx, cnt)
'알고리즘' 카테고리의 다른 글
BOJ 6186 Best Grass (0) | 2019.04.23 |
---|---|
BOJ 13549 숨바꼭질3 (0) | 2019.04.22 |
BOJ 6087 레이저 통신 (0) | 2019.04.18 |
BOJ 1926 그림 (0) | 2019.04.17 |
BOJ 2206 벽 부수고 이동하기 (0) | 2019.04.16 |