このゲームのルールを考えると以下のことが言えます.
a1,a2,⋯akのk個のブロックを選んで適切に向きを変える.
aj個目の幅をxaj′,高さをyaj′とする.
ここで,このゲームに勝利することと以下の2つの式が成立することは同値である.
- xa1′+xa2′+⋯+xak′=H
- ya1′+ya2′+⋯+yak′=W
これは2変数の部分和問題に帰着することができるので.動的計画法を用いて条件を満たす選び方が存在するかどうかを確かめればよいです.
計算量は時間空間ともにO(NHW)です.