AtCoder Beginner Contest 291 E問題 Find Permutation
問題
提出解答
問題の概要
の並び替え がある.
このとき, 以下の 個のことが分かっている.
を一意に特定できるか? 一意ならばその を求めよ.
制約
- 入力に矛盾しない が存在する.
解法
以下の事実が成り立つ.
を 頂点の DAG であるとする. このとき, 以下は同値である.
- (a) の Topological Sort は唯一である.
- (b) ある Topological Sort を とする. このとき, に対して, である.
証明
(b) (a) は明らかである.
(b) が成り立たないとする. つまり, Topological Sort において, となる整数 が存在するとする. このとき, も の Topological Sort になってしまい, (a) が成り立たない.
ここで, 次のような有向グラフ を作成する.
このとき, 制約から の Topological Sort が存在する. これが Topological Sort になることと, 実際, となる が条件を満たすことが同値になるからである.
よって, 上で示した同値性により, Topological Sort において, 隣接している 点間に有向辺が存在するかどうかを判定すれば良い.
計算量については 時間である.