Official

K - Gas Station/ガソリンスタンド Editorial by blackyuki


dis[i][j](1iK,1jN)dis[i][j](1 \leq i \leq K, 1 \leq j \leq N) を、街 aia_i から街 jj までの最短距離とします。これらの値は BFS などを用いると O(KM)O(KM) で前計算することができます。

すると、クエリ (s,t)(s,t) に対する答えは、min1iK(dis[i][s]+dis[i][t])\underset{1 \leq i \leq K}{min}(dis[i][s]+dis[i][t]) です。

計算量は O(KM+QK)O(KM+QK) です。

実装例:https://atcoder.jp/contests/past202112-open/submissions/28264738

posted:
last update:



2025-04-08 (Tue)
02:15:10 +00:00