当前位置: 首页 > news >正文

%2enet网站开发app广告联盟

%2enet网站开发,app广告联盟,莱芜政府网官方网站招聘信息,北京网站建设网络公司文章目录 题目描述测试样例算法原理算法实现参考资料 题目描述 在nxn格的棋盘上放置彼此不受攻击的n格皇后。按照国际象棋的规则,皇后可以攻击与之处在同一行或同一列或同一斜线上的棋子。n后问题等价于在nxn格的棋盘上放置n个皇后,任何2个皇后不放在同…

文章目录

    • 题目描述
    • 测试样例
    • 算法原理
    • 算法实现
    • 参考资料

题目描述

在nxn格的棋盘上放置彼此不受攻击的n格皇后。按照国际象棋的规则,皇后可以攻击与之处在同一行或同一列或同一斜线上的棋子。n后问题等价于在nxn格的棋盘上放置n个皇后,任何2个皇后不放在同一行或同一列或同一斜线上。

当n=6时,一个如下的 6×6 的跳棋棋盘:

在这里插入图片描述

上面的布局可以用序列 2 4 6 1 3 5 来描述,第 i 个数字表示在第 i 行的相应位置有一个棋子。这只是棋子放置的一个解。请编一个程序找出所有棋子放置的解。并把它们以上面的序列方法输出,解按字典顺序排列。请输出前三个解。最后一行是解的总个数。

测试样例

输入:

6

输出:

2 4 6 1 3 5
3 6 2 5 1 4
4 1 5 2 6 3
4

算法原理

       使用回溯法对解空间进行深度优先搜索遍历,同时要满足规则(任何两个皇后不放在同一行或同一列或同一斜线上),为节省时间我创建了四个数组:x[1000], y[1000], zr[1000], zl[1000],分别存储横轴、纵轴、左对角线、右对角线上是否已被占用的信息。其中,x[i]=j表示在第i行第j个位置放置一个皇后(方便输出结果);y[j]=1表示第j列已被占用;zr[i - j + n]=1表示这条从左上到右下的对角线已被占用(所有处于同一条左上到右下对角线上元素的横坐标减纵坐标都相同,为了让索引为正,所以加n);zl[i+j]=1表示这条从右上到左下的对角线已被占用(所有处于同一条右上到左下对角线上元素的横坐标加纵坐标都相同)。

算法实现

#include<bits/stdc++.h>
using namespace std;int n, num = 0;
int x[1000], y[1000], zr[1000], zl[1000];
void print()
{if (num < 3){for (int i = 1; i <= n; i++)cout << x[i] << " ";cout << endl;}num++;
}
void dfs(int i)
{if (i > n){print();return;}else{for (int j = 1; j <= n; j++){if ((!y[j]) && (!zr[i - j + n]) && (!zl[i + j])){x[i] = j;//i行第j个y[j] = 1;zr[i - j + n] = 1;zl[i + j] = 1;dfs(i + 1);//递归y[j] = 0;zr[i - j + n] = 0;zl[i + j] = 0;}}}
}
int main()
{cin >> n;dfs(1);cout << num;return 0;
}

参考资料

回溯法之n皇后问题总结_用回溯法求解n皇后问题的思路

http://www.ritt.cn/news/18487.html

相关文章:

  • 宁阳网站定制谷歌搜索引擎官网
  • 做生产计划类的网站河南网站推广那家好
  • 西安建设网站推广茶叶seo网站推广与优化方案
  • 全屏式网站营销模式100个经典案例
  • 如果做vr参观网站百度搜索排名与点击有关吗
  • 中国建设建行网站网络销售挣钱吗
  • php网站开发的毕业论文摘要app推广项目
  • 网站转化免费建网站最新视频教程
  • 重庆市建设工程安全管理网站网站点击软件排名
  • 学做网站需要java么互联网十大企业
  • 国外网站前台模板网络推广都有哪些平台
  • 移动端网站建设原则网站外包
  • 网站建设公司广州全国十大婚恋网站排名
  • wordpress做导航站seo整站优化报价
  • ppt模板免费下载百度文库seo和sem的联系
  • 网站建设公司做销售前景好不好百度一下就知道了官网楯
  • 长沙企业建网站费用珠海网站设计
  • jsp网站设计seo关键词软件
  • wordpress建站腾讯云网络推广企业
  • marketing 网站设计百度收录刷排名
  • 如何在office做网站东莞seo搜索
  • 模板支架图片优化关键词排名seo
  • 买东西网站有哪些百度用户服务中心官网
  • 广州做网站建设网络优化是做啥的
  • 中国企业500强利润排行关键词优化seo优化
  • 网站做vr的收费自己动手建立个人网站
  • 建设学校网站电子商务seo实训总结
  • 怎么用vs做网站开发我是seo关键词
  • 深圳做企业网站的公淘宝一个关键词要刷多久
  • 网站制作哪种好青岛网站设计公司哪家好