PAST5I
https://gyazo.com/01513f650068f7946cc04b839444666a
初回考察
標高の高い方から低い方へしか動けない
有向グラフ
ゴールがたくさん
コスト0の辺で束ねる?
後者をやって、ダメなら前者にしよう
考察完了
実装
どうせダイクストラ法やるなら前者の実装をする追加工数は大したことないので後者をやるメリットはないなと判断
前者の実装をする追加コード : (1)
AC
code:python
def solve(N, M, K, HS, CS, ABS):
from collections import defaultdict
edges = defaultdict(dict)
for i in range(M):
frm -= 1
to -= 1
to, frm = frm, to
# reversed edge
goal = N
for c in CS:
distances = one_to_all(goal, N + 1, edges)
INF = 9223372036854775807
for i in range(N):
if d == INF:
d = -1
print(d)