10いろいろな容量のビーカーがあります。はじめに、その中の一番容量が大きなビーカーに水を満タンに注ぎます。次に、以下のルールに従いビーカーの水を他のビーカーに写し変えていきます:ビーカーに入っている水は、残さずに全て他のビーカーに移さなければならない。一個のビーカーに水を全部移せない場合は、複数のビーカーに分けて移すことができるビーカーに水を入れるとき、満タンになるまで水を注がなければならない。水をこぼしてはならない。複数のビーカーから同じビーカーに一度に水を注いではならない。同じビーカーには一度しか水を注いではならない。このルールに従ったとき、すべてのビーカーに水を注ぐことができるかどうかを判定して下さい。問題が分かりづらいですが、「すべてのビーカーに水を注ぐことができるか」というのは「水を移し変える一連の操作の過程で、すべてのビーカーが使われたか」を意味します。うまく枝を刈りながらバックトラックを行います。注がれるビーカー(target)を決定します。段の本棚に入れるとき、本棚の最小の幅を求めて下さい。[この問題では、本の厚さの制限が緩いので、力任せ(本棚の幅を少しづづ厚くしていき貪欲に解く)で解けたのかもしれませんが、点数から察して、悲しいことに設定ミスか、または意図的に難易度を下げたか、または実行時間の制限を厳しくしているのでしょうか。力任せで解けないのであれば難易度はさらに高くなります。]出題者が求めた解法は、動的計画法または二分法だと思います。個の部分に分割するときに、各部分の数字の和をできるだけ均等にする、という問題です。厳密に言えば、各部分の数字の和の最大値を最小にするような分割を行います。つに分割することができます(これは最適な解ではありません)。