[python]伯俊11265-終わらないチームの解答
19763 ワード
Overview
BOJ 11265番未完のチームPython回答
分類:最短パス、Dijkstra、Floyd-Warshall
質問ページ
https://www.acmicpc.net/problem/11265
プールコード1-floydとshall
from sys import stdin
from typing import List
def floyd_warshall(n: int, graph: List[List[int]]) -> None:
for k in range(1, n + 1):
for i in range(1, n + 1):
for j in range(1, n + 1):
if graph[i][k] + graph[k][j] < graph[i][j]:
graph[i][j] = graph[i][k] + graph[k][j]
def main():
def input():
return stdin.readline().rstrip()
n, m = map(int, input().split())
graph = [[0] * (n + 1)] + \
[[0] + list(map(int, input().split())) for _ in range(n)]
floyd_warshall(n, graph)
for _ in range(m):
a, b, c = map(int, input().split())
if graph[a][b] <= c:
print("Enjoy other party")
else:
print("Stay here")
if __name__ == "__main__":
main()
floodとshallアルゴリズムを用いて,各キャプテンに移動するのに要する最短時間を求める.プールコード2-マルチアウトレット
from sys import stdin
from typing import List
from heapq import heappop, heappush
n: int
m: int
graph: List[List[int]]
def dijkstra(start: int, dest: int, time: int) -> bool:
if graph[start][dest] <= time:
return True
hq = []
for i in range(1, n + 1):
if i != start:
heappush(hq, (graph[start][i], i))
while hq:
dist, node = heappop(hq)
if dist > time:
return False
if dist > graph[start][node]:
continue
for neighbor in range(1, n + 1):
if neighbor == node:
continue
if dist + graph[node][neighbor] < graph[start][neighbor]:
graph[start][neighbor] = dist + graph[node][neighbor]
heappush(hq, (graph[start][neighbor], neighbor))
if neighbor == dest and graph[start][neighbor] <= time:
return True
return False
def main():
def input():
return stdin.readline().rstrip()
global n, m, graph
n, m = map(int, input().split())
graph = [[0] * (n + 1)] + \
[[0] + list(map(int, input().split())) for _ in range(n)]
for _ in range(m):
a, b, c = map(int, input().split())
if dijkstra(a, b, c):
print("Enjoy other party")
else:
print("Stay here")
if __name__ == "__main__":
main()
多芸樹を利用した草です.採点結果はpypy 3に合格したが、python 3はタイムアウトした.お客様がパーティー会場に移動するたびに、
dijkstra
関数を実行し、時間内に目的地に移動できるかどうかを判断します.Reference
この問題について([python]伯俊11265-終わらないチームの解答), 我々は、より多くの情報をここで見つけました https://velog.io/@boorook/Python-백준-11265-끝나지-않는-파티-문제-풀이テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol