poj 2698 八皇后问题
来源:互联网 发布:淘宝网广场舞高帮鞋 编辑:程序博客网 时间:2024/05/21 12:39
#include<iostream>
using namespace std;
bool vis[3][20];//记忆数组判断列,主对角线,副对角线是否被占
int ans=0,num=1;
int p=0,pos[8];
void dfs(int cur);
void print();
int main()
{
dfs(1);//初始化cur为0,即从第一行开始
return 0;
}
void dfs(int cur)
{
if(cur>8)//如果当前行数超过8(表明八个皇后已经放好)则结果加一,返回继续递归
{
ans++;
print();
return;
}
//vis[0][i]判断列,vis[i][cur-i+8]判断主对角线,vis[2][cur+i]判断副对角线
for(int i=1;i<=8;i++)
if(!vis[0][i]&&!vis[1][cur-i+8]&&!vis[2][cur+i])
{
pos[p++]=i;
vis[0][i]=vis[1][cur-i+8]=vis[2][cur+i]=true;
dfs(cur+1);//深度搜索
vis[0][i]=vis[1][cur-i+8]=vis[2][cur+i]=false;
p--;
}
}
void print()
{
int i,j;
cout<<"No. "<<num++<<endl;
for(i=0;i<8;i++)
{
for(j=0;j<8;j++)
if(i==pos[j]-1)
cout<<"1 ";
else
cout<<"0 ";
cout<<endl;
}
/*for(i=0;i<8;i++)
cout<<pos[i];
cout<<endl;*/
}
using namespace std;
bool vis[3][20];//记忆数组判断列,主对角线,副对角线是否被占
int ans=0,num=1;
int p=0,pos[8];
void dfs(int cur);
void print();
int main()
{
dfs(1);//初始化cur为0,即从第一行开始
return 0;
}
void dfs(int cur)
{
if(cur>8)//如果当前行数超过8(表明八个皇后已经放好)则结果加一,返回继续递归
{
ans++;
print();
return;
}
//vis[0][i]判断列,vis[i][cur-i+8]判断主对角线,vis[2][cur+i]判断副对角线
for(int i=1;i<=8;i++)
if(!vis[0][i]&&!vis[1][cur-i+8]&&!vis[2][cur+i])
{
pos[p++]=i;
vis[0][i]=vis[1][cur-i+8]=vis[2][cur+i]=true;
dfs(cur+1);//深度搜索
vis[0][i]=vis[1][cur-i+8]=vis[2][cur+i]=false;
p--;
}
}
void print()
{
int i,j;
cout<<"No. "<<num++<<endl;
for(i=0;i<8;i++)
{
for(j=0;j<8;j++)
if(i==pos[j]-1)
cout<<"1 ";
else
cout<<"0 ";
cout<<endl;
}
/*for(i=0;i<8;i++)
cout<<pos[i];
cout<<endl;*/
}
- poj 2698 八皇后问题
- poj 2698 八皇后问题
- poj 2698:八皇后问题
- [解题报告]POJ-2698-八皇后问题
- 2698:八皇后问题
- POJ 百练 2754 八皇后问题
- poj-2754 八皇后
- poj 2754:八皇后
- 八皇后 n皇后 问题
- 八皇后N皇后问题
- POJ 1321 棋盘问题类似八皇后 dfs搜索
- 八皇后问题
- 八皇后问题
- 八皇后问题
- 八皇后问题(2)
- 八皇后问题(3)
- 八皇后问题
- 八皇后问题程序
- UIScrollView 原理(转载)
- EXT 做布局设置的一点经验
- java 中的剪切板
- Oracle 删除用户和表空间
- BufferedInputStream和BufferedOutputStream
- poj 2698 八皇后问题
- 时间管理---规律你的生活
- 你做过的最有效的提高编程水平的一件事情是什么
- 数据库cpu使用率居高不下的解决方案
- 腾讯2012年实习生招聘二面经历感悟
- android中的menu
- Microsoft SQL Server 2005提示未能加载包"Microsoft SQL Management Studio Package "
- SIP信令标准 简介
- android中的dialog