4 行と 4 列のチェッカー ボードがあるとしN
ます。マトリックスの各セルには値があります。ボード2N
に (それぞれが 1 つのセルに) 配置する必要があるトークンを指定すると、マトリックスのセル内のすべての値の合計が可能な限り大きくなります (最大値)。
トークンを配置する際の制限は、2 つのトークンを水平方向または垂直方向に隣接させることはできません。
2N
すべてのトークンを配置する必要はありません。
トークンを列に配置する正当な方法は 8 つありN
ます。そのため、それぞれがオプションを記述するときのサイズで 8 つの配列を定義します。
とにかく、動的計画法を使用して、問題の再帰方程式を作成する必要があります。
私が思いついた:
A(i,j) = max { A(i,j) , A(i,j) + max { A(i-1,j-1) , ... , H(i-1,j-1) } } , B(i,j) = .... , H(i,j) = ...
A
が最初の配列で、H
が 8 番目の配列である場合。
さて、私の再帰方程式は良くないと思います。たとえそうであったとしても、再帰方程式に条件 (2 つのトークンを水平または垂直に隣接させることはできません) を追加する方法がわかりません。
誰でも助けようとすることができますか?