08下図のような11パズルを解く最短の手数を求めよ。20手以内で解けない場合はNAと出力する。幅優先探索では「時間切れ」になってしまいます。この問題は、両側探索または反復深化等のヒューリスティックを用いた探索でなければ解けません。以下は、反復深化による解法です。12下図に示すように、M本の東西方向の道路、N本の南北の道路からなる格子状の地図において、トラックが始点の交差点から終点の交差点までたどり着くまでの最短時間を求めよ。トラックは東西南北方向の交差点に進入できるが、来た方向へはUターンできない。交差点には信号機がある所があり、各信号機のシグナルは一定の周期で東西ー南北方向に切り替わる(赤と青のみ)。交差点に進入できるのは進行方向の信号機が青の場合である。交差点から隣の交差点への移動には一定の時間D分を要するが、渋滞の道路ではさらにd分要する。工事中で通れない道路もある。ダイクストラのアルゴリズムで解けそうですが、この問題の場合、以下のような状態空間を定義すれば、深さ優先探索で解くことができます。あり、メモリも間に合います。10いろいろな容量のビーカーがあります。はじめに、その中の一番容量が大きなビーカーに水を満タンに注ぎます。次に、以下のルールに従いビーカーの水を他のビーカーに写し変えていきます:ビーカーに入っている水は、残さずに全て他のビーカーに移さなければならない。一個のビーカーに水を全部移せない場合は、複数のビーカーに分けて移すことができるビーカーに水を入れるとき、満タンになるまで水を注がなければならない。水をこぼしてはならない。複数のビーカーから同じビーカーに一度に水を注いではならない。同じビーカーには一度しか水を注いではならない。このルールに従ったとき、すべてのビーカーに水を注ぐことができるかどうかを判定して下さい。問題が分かりづらいですが、「すべてのビーカーに水を注ぐことができるか」というのは「水を移し変える一連の操作の過程で、すべてのビーカーが使われたか」を意味します。うまく枝を刈りながらバックトラックを行います。注がれるビーカー(target)を決定します。段の本棚に入れるとき、本棚の最小の幅を求めて下さい。[この問題では、本の厚さの制限が緩いので、力任せ(本棚の幅を少しづづ厚くしていき貪欲に解く)で解けたのかもしれませんが、点数から察して、悲しいことに設定ミスか、または意図的に難易度を下げたか、または実行時間の制限を厳しくしているのでしょうか。力任せで解けないのであれば難易度はさらに高くなります。]出題者が求めた解法は、動的計画法または二分法だと思います。個の部分に分割するときに、各部分の数字の和をできるだけ均等にする、という問題です。厳密に言えば、各部分の数字の和の最大値を最小にするような分割を行います。つに分割することができます(これは最適な解ではありません)。