递归基础之N皇后问题
来源:互联网 发布:手机计算道路软件 编辑:程序博客网 时间:2024/06/05 06:10
Do more with less
递归基础之N皇后问题 Time Limit: 1 Sec Memory Limit: 128 MB
Description
在n×n 格的棋盘上放置彼此不受攻击的n 个皇后。按照国际象棋的规则,皇后可以攻击与之处在同一行或同一列或同一斜线上的棋子。n后问题等价于在n×n格的棋盘上放置n个皇后,任何2 个皇后不放在同一行或同一列或同一斜线上。 设计一个解n 后问题的队列式分支限界法,计算在n× n个方格上放置彼此不受攻击的n个皇后的顺序(从小到大)放置方案。
Input
输入数据只占一行,有1 个正整数n,4≤n≤8。
Output
顺序从小到大输出每一个可行解,中间是空格隔开,输出完一个可行解之后是一个换行。
Sample Input
4
Sample Output
2 4 1 3
#include <cstdio>#include <cmath>void nQueens(int queen[], int n,int k);int place(int queen[], int k);int main(){ int n; int queen[100]; scanf("%d", &n); nQueens(queen,n,1); return 0;}int place(int queen[], int k){ for(int i=1; i<k; i++) { if((queen[i]==queen[k])||(fabs(queen[i]-queen[k])==fabs(i-k))) return 0; } return 1;}void nQueens(int queen[],int n,int k){ if(k>n) { for(int i = 1; i <= n; i ++) printf("%d ",queen[i]); printf("\n"); } else for(int i = 1; i <= n; i ++) { queen[k] = i; if(place(queen,k)) nQueens(queen,n,k+1); }}
0 0
- 递归基础之N皇后问题
- 算法学习之递归--N皇后问题
- n皇后问题【递归】
- 递归 N皇后问题
- N皇后问题 (递归)
- 递归---n皇后问题
- n皇后问题--递归回溯
- 递归实现n皇后问题
- N皇后问题(递归)
- HDU2553:N皇后问题【递归】
- N皇后问题递归回溯
- N皇后问题(递归做法)
- 递归分治算法之N皇后问题(Java版本)
- 回溯法-5.5.1 n皇后问题之递归法
- C递归的N皇后问题.
- 递归求解N皇后问题(c语言)
- 递归法算n皇后问题
- n皇后问题java递归实现
- 二叉树5:平衡二叉树判断
- Android 短信的监听器
- 搭建平台区别
- SQL Sever数据库的学习
- QT写一个记事本⑦
- 递归基础之N皇后问题
- Markdown编辑器(Atom,Markdownpad2,Typora)初比较
- hdu 2230 watchcow 【图论-欧拉回路-遍历-输出路径】
- eclipse清除运行Maven build...后积累的配置项
- PHP实现页面静态化——全部纯静态化
- 4.sqoop RDBMS与Hive数据互导
- 设计模式之桥接模式
- 二叉树:搜索二叉树和完全二叉树
- jishu