Date:2022.04.08
题意描述:
在 n×n 的棋盘上放 k 个国王,国王可攻击相邻的 8 个格子,求使它们无法互相攻击的方案总数。
输入格式
共一行,包含两个整数 n 和 k。
输出格式
共一行,表示方案总数,若不能够放置则输出0。
数据范围
1≤n≤10,
0≤k≤n2
输入样例:
3 2
输出样例:
16
思路: f [ i ] [ j ] [ k ] : f[i][j][k]: f[i][j][k]:已经在前 i i i行摆完 k k k个国王,其中第 i i i行摆放方式固定为 j j j的合法摆放方案数。
c o u n t ( i ) : count(i): count(i):状态 i i i中1的个数。
我们最后一个状态是 j j j,因此我们讨论所有满足条件的 f [ i − 1 ] [ x ] [ j − c o u n t ( j ) ] f[i-1][x][j-count(j)] f[i−1][x][j−count(j)],其中前一行摆放状态 x x x不能与当前行摆放状态 j j j</