AtCoder Beginner Contest 226 D 問題 Teleportation
問題
提出解答
問題の概要
以下を満たす の部分集合 で, 濃度の最小値を求めよ.
- 任意の に対して, となる と, 正の整数 が存在する.
制約
解法
に対して, とする. このとき, 正の整数 に対して, である. このことから, 以下のことがわかる.
で, が公約数 を持つならば, を に置き換えてもよい.
また, この議論をできるだけ行うと, 以下のように帰着できる.
で, の最大公約数を としたとき, を に置き換えてもよい.
よって, の元は符号付きで, 互いに素であるとしてもよい.
逆に, で, と , と が互いに素のとき, であり, 互いに素であるような は他の互いに素であるような の組で代替がないことになる.
以上のことから, 以下のようにして求めることができる.
- を空集合とする.
- なる全ての組 に対して, 以下を実行する.
- とし, とする.
- を に加える.
- が答え.
を求めるための計算量は, だったので, このアルゴリズムにより, 計算量 で求めることができる.