Description
在N×N的棋盘里面放K个国王,使他们互不攻击,共有多少种摆放方案。国王能攻击到它上下左右,以及左上左下右上右下八个方向上附近的各一个格子,共8个格子。
Input
两个数N,K ( 1 <=N <=9, 0 <= K <= N * N)
Output
方案数。
Sample Input
3 2
Sample Output
16 想法: 状压DP 设f[i][j][k]表示到第i行,第i行状态为j,共选了k个国王的方案数 对于两行的状态x,y,如果(x and y==0)and(x and (y>>1)==0)and(x and (y<<1)==0),则这两行可以相邻 f[i][j][k]+=f[i-1][l]【k-gs[j]】(j可以和l相邻,gs[j]为这一行状态为j,放的国王数)