n皇后问题
来源:互联网 发布:mac windows 共享软件 编辑:程序博客网 时间:2024/06/05 18:54
【问题描述】
在8*8的棋盘上摆放8个皇后,使其不能互相攻击,即任意的两个皇后不能处在同意行,同一列,或同意斜线上。可以把八皇后问题拓展为n皇后问 题,即在n*n的棋盘上摆放n个皇后,使其任意两个皇后都不能处于同一行、同一列或同一斜线上。
【输入描述】
输入n;
【输出描述】
输出放置的每种方案;
很简单的代码
#include<cstdio>#include<algorithm>using namespace std;int a[1000];int n;bool flag1[1000],flag2[1000],flag3[1000];void read(){scanf("%d",&n);for(int i=1;i<=1000;i++){//scanf("%d%d%d%d",&x1,&y1,&x2,&y2);flag1[i]=true;//分别记录同行 同列 同斜线 flag2[i]=true;flag3[i]=true;}}void dfs(int k){if(k>n){for(int i=1;i<=n;i++){printf("%d",a[i]);} printf("\n");}else{for(int i=1;i<=n;i++) { if(flag1[i] && flag2[i+k] && flag3[k-i+n]) { a[k]=i; flag1[i]=false; flag2[i+k]=false; flag3[k-i+n]=false; dfs(k+1); flag1[i]=true; flag2[i+k]=true; flag3[k-i+n]=true; //flag[i]=true; } }}}int main(){read();dfs(1);return 0;}
0 0
- N*N皇后问题
- 八皇后 n皇后 问题
- 八皇后N皇后问题
- N皇后问题
- n皇后问题
- N皇后问题
- N 皇后问题
- N皇后问题
- N皇后问题算法
- N 皇后问题
- N皇后问题
- N皇后问题
- n皇后问题
- N皇后问题
- N皇后问题优化
- N皇后问题
- n皇后问题
- N皇后问题
- 【cocos2d-js官方文档】八、cc.game
- leetcode笔记:Evaluate Reverse Polish Notation(逆波兰式的计算)
- 物联网通讯协议介绍
- Linux epoll详解
- 【cocos2d-js官方文档】九、cc.loader
- n皇后问题
- "library not found for - "解决办法
- 一个不能编译通过的多线程示例程序
- Android 启动模式中巧用singleTask
- Hibernate错误:Unable to build the default Bean Validator Factory
- Eventbus 详解,Activity和fragment通讯,相互发送接收数据
- elasicsearch suggest用法
- JQuery如何监听DIV内容变化
- java中静态代码块的用法 static用法详解