深搜-n皇后问题 1019
来源:互联网 发布:家庭网络布线 编辑:程序博客网 时间:2024/04/28 19:11
题意:在n×n格的棋盘上放置彼此不受攻击的n个皇后。按照国际象棋的规则,皇后可以攻击与之处在同一行或同一列或同一斜线上的棋子。n后问题等价于再n×n的棋盘上放置n个皇后,任何2个皇后不妨在同一行或同一列或同一斜线上。
就是考虑皇后放置的位置,对于每一行,我们需要枚举每个可以放置皇后的位置,而且需要判断当前位置(第i行)是否满足条件,即判断这个位置是否与放置好的前i-1行的皇后的位置相冲突,如果冲突,说明这个位置不合适;否则的话,就可以枚举下一行皇后的位置,直至第n行。
#include<stdio.h>#include<string.h>#define MAX 15int a[MAX];int s[MAX];int vis[MAX];int n,t,tot;void dfs(int cur){ int i,j; if(cur==n) { tot++; } else { for(i=0;i<n;i++) { int ok=1; a[cur]=i; for(j=0;j<cur;j++) { if(a[cur]==a[j]||cur-a[cur]==j-a[j]||cur+a[cur]==j+a[j]) { ok=0; break; } } if(ok) dfs(cur+1); } }}int main(){ int m,j,i,k; memset(a,0,sizeof(a)); memset(s,0,sizeof(s)); for(n=1;n<=10;n++) { tot=0; dfs(0); s[n]=tot; } while(scanf("%d",&t),t) { printf("%d\n",s[t]); } return 0;}
0 0
- 深搜-n皇后问题 1019
- 1019 N皇后问题
- 1019-N皇后问题
- 1019N皇后问题
- 1019 N皇后问题
- N皇后问题 1019
- 1019 N皇后问题
- 深搜----N皇后问题
- N 皇后问题 回溯/深搜
- N*N皇后问题
- 八皇后 n皇后 问题
- 八皇后N皇后问题
- DFS 搜索 Problem 1019 N皇后问题
- 练习二 1019 n皇后问题
- HDU 2553 N皇后问题 深搜-dfs
- HDU 2553 N皇后问题(深搜)
- 深搜——n皇后问题
- n皇后问题(深搜DFS)
- C++11 标准新特性: 右值引用与转移语义
- 流行的android组件大全
- 一百以内的素数
- shiny分级更新dataframe数值实现
- Spark学习
- 深搜-n皇后问题 1019
- iOS陆哥开发笔记(二十一) (百度地图框架配置)
- /bin,/sbin,/usr/sbin,/usr/bin 目录
- 字符串与正则-提取数字
- 由于扩展配置问题而无法提供您请求的页面。如果该页面是脚本,请添加处理程序。如果应下载文件,请添加 MIME 映射
- mybatis常用注解
- openstack 单元测试助手tox
- JS自定义滚动条效果+鼠标滚轮事件
- 线程池