1213:八皇后问题

简介: 1213:八皇后问题

1213:八皇后问题

时间限制: 1000 ms         内存限制: 65536 KB

【题目描述】

在国际象棋棋盘上放置八个皇后,要求每两个皇后之间不能直接吃掉对方。

【输入】

(无)

【输出】

按给定顺序和格式输出所有八皇后问题的解(见样例)。

【输入样例】

(无)

【输出样例】

No. 1

1 0 0 0 0 0 0 0

0 0 0 0 0 0 1 0

0 0 0 0 1 0 0 0

0 0 0 0 0 0 0 1

0 1 0 0 0 0 0 0

0 0 0 1 0 0 0 0

0 0 0 0 0 1 0 0

0 0 1 0 0 0 0 0

No. 2

1 0 0 0 0 0 0 0

0 0 0 0 0 0 1 0

0 0 0 1 0 0 0 0

0 0 0 0 0 1 0 0

0 0 0 0 0 0 0 1

0 1 0 0 0 0 0 0

0 0 0 0 1 0 0 0

0 0 1 0 0 0 0 0

...以下省略

【来源】

No

1. #include<iostream>
2. #include<cstdio>
3. #include<iomanip>
4. using namespace std;
5. int a[9],b[9],c[17],d[17];
6. int sum=0;
7. void print()
8. {
9.  sum++;
10.   cout<<"No. "<<sum<<endl;
11.   for(int i=1;i<=8;i++){
12.     for(int j=1;j<=8;j++) 
13.       if(i==a[j]) cout<<"1 ";
14.       else cout<<"0 ";
15.     cout<<endl; 
16.   }
17. }
18. int dfs(int i)
19. {
20. 
21.   for(int j=1;j<=8;j++){
22.     if((b[j]==0)&&(c[i+j]==0)&&(d[i-j+7]==0)){
23.       a[i]=j;
24.       b[j]=1;
25.       c[i+j]=1;
26.       d[i-j+7]=1;
27.       if(i==8) print();
28.       else dfs(i+1);
29.       b[j]=0;
30.       c[i+j]=0;
31.       d[i-j+7]=0;
32.     } 
33.   } 
34. }
35. int main()
36. {
37.   dfs(1);
38.   return 0;
39.  }

 


相关文章
|
7月前
|
算法 测试技术 C++
【数学归纳法 组合数学】容斥原理
【数学归纳法 组合数学】容斥原理
|
7月前
|
机器学习/深度学习 算法 C++
【动态规划】C++算法:403.青蛙过河
【动态规划】C++算法:403.青蛙过河
|
索引
八皇后问题
八皇后问题
240 0
|
C++
【LeetCode343】剪绳子(动态规划)
(1)确定状态 dp[i]是将正整数i拆成2个及其以上的正整数后,求所有数的乘积值。
145 0
【LeetCode343】剪绳子(动态规划)
|
Web App开发 算法
蓝桥杯 floyd算法练习 最短路
蓝桥杯 floyd算法练习 最短路
130 0
蓝桥杯 floyd算法练习 最短路
|
算法
【算法】 八皇后问题之回溯法
会下国际象棋的人都很清楚:皇后可以在横、竖、斜线上不限步数地吃掉其他棋子。如何将8个皇后放在棋盘上(有8 * 8个方格),使它们谁也不能被吃掉!这就是著名的八皇后问题。每次填满第一行第一列,当不满足时候,试下第一行第二列,依次进行,递归的出口为找到第八个点,跳出递归。,在循环里面还要判断是否满足不同行,不同列,不同对角线。使用回溯法来解决该问题,下面的代码是我看到过的最精简的代码,相关的注释都写在代码上了。运行得出结果,总共有92中结果。
275 0
对于八皇后问题的详细说明
八皇后为解决问题说明,题目在主页
70 0
对于八皇后问题的详细说明
|
定位技术
宝岛探险(求岛屿大小,染色法) 宽搜 深搜
宝岛探险(求岛屿大小,染色法) 宽搜 深搜
宝岛探险(求岛屿大小,染色法) 宽搜 深搜
|
5G
LeetCode 36有效的数独&37解数独(八皇后问题)
判断一个 9x9 的数独是否有效。只需要根据以下规则,验证已经填入的数字是否有效即可。
133 0
LeetCode 36有效的数独&37解数独(八皇后问题)
|
存储 算法 图计算
数学知识:容斥原理
复习acwing算法基础课的内容,本篇为讲解数学知识:容斥原理,关于时间复杂度:目前博主不太会计算,先鸽了,日后一定补上。
158 0
数学知识:容斥原理

热门文章

最新文章