AtCoder Beginner Contest 230 D 問題 Destroyer Takahashi
問題
提出解答
問題の概要
2つの整数 に対して, で, 以上 以下の整数全体の集合とする. また, で 以下の正の整数の全体の集合とする. 以下を満たす のうち, 濃度の最小値を求めよ.
- 任意の に対して, である が存在する.
制約
解法
次のようなアルゴリズムで正解できる.
- 必要ならば, を並び替えて, とする.
- とする.
- の順に以下を実行する.
- だった場合, に を加算して, とする.
- を出力する.
このアルゴリズムの正当性のために, 以下を証明する.
条件を満たす 全体の集合を , その元のうち, 濃度の最小値を とする. このとき, であって, となるものが存在する.
(証明)
で, を満たすものを取ってくる. ここで, としてもよい.
- だった場合
なので, どのような に対しても, となってしまい, であることに矛盾する. - だった場合
- だった場合
とする. となる任意の に対して, より, なので, となり, 最小性に矛盾する. - だった場合
とすると, これが所望のものである.
- だった場合
よって, この証明により, このアルゴリズムを用いて正解を導くことがわかった. 計算量はソートがボトルネックになり, である.