問題概要
正整数 が与えられ、集合
と定める。要素数2以上である
の部分集合
について、
の値を「
に含まれる相異なる2要素
に対する
の最大値」と定める。
に対して、要素数が
である
の部分集合
についての
の最小値を求めよ。
制約
解法
色々考え方があるとは思いますが、まずは として考えるべきものの範囲を絞ります。
仮に集合 にある値
が含まれず、かつ
の倍数
が含まれているとします。このとき
を
に置き換えると、要素数は変わらず、
の値は変わらないか減少します。
この置き換え操作を有限回繰り返すと、 を増やすことなく、このような
の組が存在しないような集合に変換することができます。つまり考えるべき
はこのような
が存在しないものに限定することができます。
これは言い換えると、1より大きい値 について「
自身より小さい
の約数が全て
に入るまでは、
が
に追加されることはない」と考えてしまって良い、ということです。以降は、このルールに従って構成した集合だけを考えることにします。
このルールに従うと、集合 に
を追加する時点で
には
の倍数は含まれず、
より小さい
の約数は必ず含まれています。つまり
より小さい最大の約数を
とすると、値
を追加することで
は
に置き換えられます。
そのため の値を小さく保ちながら
のサイズを増やすには、まず
を入れ、その後
が小さい値から順番に追加していくのが最適になります。具体的には、
:
と素数だけを含む
:上記と
を含む
:上記と
を含む
という感じになります。あとは各値 について
を計算し適切にシミュレーションなどをすることで答えを求めることができます。