N皇后问题

Description

  在N*N的方格棋盘放置了N个皇后,使得它们不相互攻击(即任意2个皇后不允许处在同一排,同一列,也不允许处在与棋盘边框成45角的斜线上。       
  你的任务是,对于给定的N,求出有多少种合法的放置方法。              

Input

共有若干行,每行一个正整数N≤10,表示棋盘和皇后的数量;如果N=0,表示结束。          

Output

共有若干行,每行一个正整数,表示对应输入行的皇后的不同放置数量。           

Sample Input

1 8 5 0        

Sample Output

1 92 10
题目大意:
在N*N的方格上放了N个皇后(要求:任意两个皇后不同行、不同列、不在同一斜排上)。
代码:
 #include<cstdio>
#include<iostream>
using namespace std; int tot,N,n,c[],b[],vis[][]; void search(int cur)
{
if(cur==n)
tot++;
else for(int i=; i<n; i++)
{
if(!vis[][i]&&!vis[][cur+i]&&!vis[][cur-i+n])
{
c[cur]=i;
vis[][i]=vis[][cur+i]=vis[][cur-i+n]=;
search(cur+);
vis[][i]=vis[][cur+i]=vis[][cur-i+n]=;
}
}
} int main()
{
for(n=; n<=; n++)
{
tot=;
search();
b[n]=tot;
}
while(scanf("%d",&N)==&&N)
printf("%d\n",b[N]); return ;
}

注:
书上有一道相似的问题是8皇后问题,中间有一段代码是书上的。

 

最新文章

  1. eap-tls
  2. 自动生成数据库字典(sql2008)
  3. 【MyEclipse 2015】 逆向破解实录系列【终】(纯研究)
  4. POJ C程序设计进阶 编程题#4:寻找平面上的极大点
  5. Android 下log的使用总结
  6. Java与WCF交互(一):Java客户端调用WCF服务
  7. [Everyday Mathematics]20150131
  8. hasLayout与Block formatting contexts的学习(上)
  9. ArcMap制图_显示指定区域地图内容
  10. 利用cookies+requests包登陆微博,使用xpath抓取目标用户的用户信息、微博以及对应评论
  11. (摘)sql-索引的作用(超详细)
  12. springboot的创建
  13. kbenigne学习3 get-started 2创建实体
  14. Tornado 模板(StaticFileHandler/static_path/template_path等) 笔记
  15. eclipse 创建servlet 出现继承 HttpServlet 报红线
  16. Qt解决:Qobject::connect queue arguments of type ‘xxxx’,Make sure ‘xxxx’ is registered using qRegister
  17. 【转】每天一个linux命令(4):mkdir命令
  18. linux清理n天前的文件命令
  19. 如何登陆FTP服务器下载文件
  20. linux中ls命令使用选项

热门文章

  1. html5 存储篇(一)
  2. [转]使用ping钥匙临时开启SSH:22端口,实现远程安全SSH登录管理就这么简单
  3. verilog中读取文件中的字符串_modelsim高级仿真
  4. QT太多的内容和模块,怎么办?
  5. C# 方法的可选参数、命名参数
  6. 使用@class和#import的细节问题
  7. PHP中用到的一些字符串函数
  8. ofbiz学习笔记
  9. XCL-Charts图表库中柱形图的同源风格切换介绍
  10. [每日一题] 11gOCP 1z0-052 :2013-09-15 Enterprise Manager Support Workbench..................B9