Description D e s c r i p t i o n
有一个 n∗m n ∗ m 的一个棋盘,问在棋盘上面摆放炮且炮与炮之间互不攻击的方案数。
Solution S o l u t i o n
一看就是DP。
看到 n,m n , m 相对于状压DP的数据规模来说比较大,因此不好状压。
仔细分析,炮与炮之间发生冲突当且仅当所在的行或列上有 3 3 个及以上的炮。
而且,只要一列上的炮数少于 个,无论这两列摆在什么位置,这几个炮都不会相互攻击。由此,我们并不需要记录这几个炮的具体摆放位置,只要知道放有 1 1 个或 个炮的位置就行了,这样没有摆炮的列数也可以推出来。
因此,我们用 d(i,j,k