C - Reindeer and Sleigh 2 解説 by kyopro_friends

直感的な説明

ソリを引くトナカイの力の総和から、ソリに乗るトナカイの重さの総和を引いたものを、余力と呼ぶことにします。問題は「余力が0以上で、ソリに乗るトナカイの数を最大化してください」となります。

全てのトナカイがソリを引く状態から始めて、何匹かのトナカイをソリに乗せることを考えます。

現在のトナカイの配置がどのようなものであっても、トナカイ \(i\) が「ソリを引く」状態から「ソリに乗る」状態になると、ソリを引く力が \(P_i\) 減り、ソリの重さが \(W_i\) 増えるので、余力が \(P_i+W_i\) 減ります。

よって、「ソリに乗る」状態のトナカイの数を最大化するには、余力をできるだけ減らさないように \(P_i+W_i\) が小さなトナカイから貪欲にソリに乗せるのが最適です。

投稿日時:
最終更新: