No.054 D

半分全列挙を使う.

種類の薬品を前半と後半に分け, 後半を先に全探索しておき, 前半の組み合わせごとに後半の全探索の結果の中から最適なものを選ぶ.

残りは後半の全探索の結果の中から最適なものを選ぶにはどうすればいいかという問題である.

まず, 混合比が にならなければいけないので, タイプA, Bの物質の量はそれぞれ とならなければいけない. ( は互いに素である)

前半の組み合わせにおけるタイプA, Bの物質の量を として後半の組み合わせにおけるタイプA, Bの物質の量を とすると, で割り切れなければいけないので, で割った余りで分類しておく. 同様に で割った余りで分類しておく.

さらに

となるので,

となり, で分類する.

で割った余り, で割った余り, で分類すればこの分類の中での最安値を使うのが最適なので, それより高い組み合わせは保存しておく必要がなく, 後半の全探索の結果の中から最適なものを選ぶ計算量は となる.