蓝桥杯_N 皇后问题
蓝桥杯每日一题
解题思路
大方向:回溯法
回溯法什么?
答:回溯法也是穷举法的一种,一个一个的试
题目理解:
又到了咬文嚼字的时间了,蓝桥杯就喜欢出这种问题,有点点烦,但是还是一起来看看吧!
题目原话:任意2个皇后不允许处在同一排,同一列,也不允许处在与棋盘边框成45角的斜线上.
解题思路:
同一行就只能有一个皇后;
同一列就只能有一个皇后;
同一个对角线也只能有一个皇后;
特别注意:他这个题目的对角线是什么意思?=>下边的红线都属于对角线
当n等于4时,有两种情况
代码解法1(矩阵的行列是[1,n])
n个皇后
#include <iostream>
#include <stdio.h>
using namespace std;
int x[15] = {
0};
int sum,n;
int judge(int k)//表示现在遍历到的第k个皇后,k<=n
{
for(int i=1; i<k; i++)//与1,2,3,...,k-1个皇后对比
{
if(abs(k-i)==abs(x[k]-x[i]))//用来判断两个皇后是否在对角线上
return 0;
else if (x[k]==x