问题描述:
n皇后问题是高斯提出的一个经典的问题,是指在一个n*n的棋盘上放置n各皇后,每行一个并使其不能相互攻击(同一行、同一列、同一斜行上的两个皇后都会相互攻击),编写程序找出所有的放置方案。
例如,在下面的8×8棋盘格局中,若一个皇后放在第4行、第4列,则图(a)中所有标*的位置都不能再放置其他皇后,图(b)是一种可能的8皇后解决方案。
AC代码:
int n,sum,k=3,f[20];//n代表棋盘是n*n的,sum为可行解的个数,洛谷中要求输出前三组可行解,f[m]代表第m行的皇后放置在了第f[m]列,注意**代码中行与列均从1下标开始**
void dfs(int cur)//cur为current的缩写,意为**当前的**状态
{
int i,j,flag;//flag用来标记能(1)否(0)在当前位置放置皇后
if