八皇后问题
来源:互联网 发布:设置网络共享打印机 编辑:程序博客网 时间:2024/06/05 23:42
说起八皇后,还真让人有种高端的感觉,然而,当你认真去思考的时候,八皇后不过就是一个简单的搜索问题罢了!
问题描述:
同行同列和两条对角线都不能有两个皇后;
明显的搜索题目,好了,不多说啦,看代码,注释够详细
#include<iostream>#include<cstdio>#include<cstring>#include<algorithm>#include<cmath>#include<stdlib.h>#include<queue>#include<vector>#include<map>#include<ctime>#include<set> #include<stack>using namespace std;const int maxn=8;int queuen[maxn];//表示列位置int sum=0;void show()//输出皇后位置{ sum++; for(int i=0; i<maxn; i++) { printf("<%d,%d>",i+1,queuen[i]+1); //cout<<i<<queuen[i]+1; } cout<<endl;}int check(int n)//检查是否含有皇后{ int i; for( i=0; i<n; i++) { if(queuen[n]==queuen[i]||fabs(queuen[i]-queuen[n])==n-i)//同行同列,对角线是否含有皇后 return 1; } return 0;}void put(int n)//递归搜索{ if(n==maxn)//如果遍历完,则表示可放置皇后 show(); else { for(int i=0; i<maxn; i++) { queuen[n]=i; if(!check(n)) { put(n+1); } } }}int main(){ put(0);//从坐标初始位置开始 cout<<sum<<endl;//输出所有情况 return 0;}
0 0
- 八皇后 n皇后 问题
- 八皇后N皇后问题
- 八皇后问题
- 八皇后问题
- 八皇后问题
- 八皇后问题(2)
- 八皇后问题(3)
- 八皇后问题
- 八皇后问题程序
- 浅谈八皇后问题
- 八皇后问题
- 八皇后问题
- 八皇后问题
- 八皇后问题
- 八皇后问题求解
- 八皇后问题
- 八皇后问题
- 八皇后问题
- LVS+Keepalived实现MySQL从库读操作负载均衡
- POJ 2955:Brackets
- 二阶切比雪夫多项式实现(scala版、python版)
- 转:HTTP长连接和短连接原理浅析
- Fragment 在屏幕切换上的应用
- 八皇后问题
- ZOJ 2100 Seeding(dfs)
- div width 100% 左右滑动条问题
- 【西祠日志】【15】周二
- android音乐播放器的音频焦点控制
- android Handler & Looper 源码解读
- JAVA网络编程之——URL类
- 秒杀多线程第十篇 生产者消费者问题
- JQuery中$.ajax()方法参数详解