AtCoder Regular Contest 159 A問題 Copy and Paste Graph
問題
提出解答
問題の概要
頂点の有向グラフ がある. ただし,
である. このとき, 以下の 個の質問に答えよ.
- において, から頂点 へ到達可能か? 到達可能ならば経路の長さの最小値を求めよ.
(※ 実際の問題では頂点は 以上 以下の整数として与えられる.)
制約
解法
の場合は Warshall-Floyd 法を利用して前計算することにより, 前計算 時間, 1クエリ当たり 時間, 合計 時間で解くことができる.
これ以降は とする. の部分グラフ を において, が生成する部分有向グラフとする.
このとき, 有向グラフ における距離を と書くことにする. このとき, において以下が従う.
- ならば, である.
- ならば, である.
(証明) における 間の最短距離を達成する有向パスを
とする. このとき, 有向辺の存在は のみによって決定されるので,
も 上の有向パスである.
ならば, 頂点のグループの番号の対称性から, としてもよい. このとき, 上のパスは 上の有向パスである.
従って,
である.
の場合も とすればよい.
これにより, 頂点間の最短経路問題に帰着できた. 従って, Warshall-Floyd 法を利用して前計算することにより, 前計算 時間, 1クエリ当たり 時間, 合計 時間で解くことができる.
なお, この解法は の場合も含んでいる.