一个 N * N 的棋盘上面,有些格子不能放,放置 M 的棋子, 每两个棋子不能在同一行或者同一列,问有多少种放法 DFS太慢,用SCR好点点 Python 仅仅有 22 行,事实上能够更短.可是得排成非常长非常长的一行 while True: table = [ [ 0 for j in range( 300 ) ] for i in range( 12 ) ] table[0][0] = 1 boardsize, chessnum = map( int, raw_input().split(…
#include<iostream> #include<cstdio> #include<cstring> using namespace std; int n, k; const int maxn = 10; char chess[maxn][maxn]; int vis_y[maxn]; //判断该列是否已经有棋子 int sum; void dfs(int x, int rem) { if(rem == 0) { sum++; //已找到一种方案 return ;…