2019.03.17) 백준 최단경로 특집 6편 - 6118(PyPy3)
2019. 3. 17. 23:11ㆍ프로그래밍(주력)/백준 문제풀이
주말이라 조금 놀았다.
내일부턴 재학중인 선린고의 정올문제를 시험삼아 3문제씩 풀어볼것이다.
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 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 | from heapq import heappop, heappush INF = 1e9 N, M = map(int, input().split(' ')) graph = {i: list() for i in range(1, N + 1)} for _ in range(M): a, b = map(int, input().split(' ')) # 왠지 순서대로 처리해야할거 같아서 힙 썼는데 필요없... heappush(graph[a], b) heappush(graph[b], a) check = {i: INF for i in range(1, N + 1)} # 우선순위 큐 구현 hq = list() heappush(hq, (0, 1)) # 높은 값 mx = 0 # 높은 위치 mxn = 0 # 높은 위치들 # 중복되지 않게 하려고 집합으로 구현 mxc = set() while hq: w, now = heappop(hq) if check[now] <= w: continue check[now] = w if w > mx: mx = w mxn = now mxc = set() if w == mx: mxc.add(now) for nxt in graph[now]: if check[nxt] > w + 1: heappush(hq, (w + 1, nxt)) print(mxn, mx, len(mxc)) | cs |
'프로그래밍(주력) > 백준 문제풀이' 카테고리의 다른 글
2019.03.19) 소프트웨어 마에스트로 마지막 스퍼트 1편 - 14442 (PyPy3) (0) | 2019.03.19 |
---|---|
2019.03.18) 선린 정올특집 1편 - 1449, 9095, 11508, 11509, 13900(PyPy3) (0) | 2019.03.18 |
2019.03.16) 백준 최단경로 특집 5편 - 10159(PyPy3) (0) | 2019.03.16 |
2019.03.15) 백준 최단경로 특집 4편 - 1238, 1389, 11403(PyPy3) (0) | 2019.03.15 |
2019.03.14) 백준 최단경로 특집 3편 - 1504, 2606(PyPy3) (0) | 2019.03.14 |