Problem 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皇后问题本质也是DFS问题,不过这题需要先打一个表吧,不然会TLE

#include<iostream>
#include<cstring>
#include<cmath>
using namespace std;
const int N=;
int result[N];
int queuePos[N];
int n,ans;
void DFS(int k)
{
if(k==n+)
{
ans++;
return ;
}
for(int i=;i<=n;i++)
{
int j;
for(j=;j<k;j++)
{
if(queuePos[j]==i||abs(queuePos[j]-i)==abs(k-j))
break;
}
if(j==k)
{
queuePos[k]=i;
DFS(k+);
}
}
}
int main()
{
for(int i=;i<=;i++)
{
ans=;
n=i;
DFS(); result[n]=ans;
}
while(cin>>n)
{
if(n==) break;
cout<<result[n]<<endl;
}
return ;
}

最新文章

  1. 一步步开发自己的博客 .NET版(11、Web.config文件的读取和修改)
  2. python 面向对象初级篇
  3. Javascript Date Format
  4. 《CDN web加速代理》RHEL6
  5. jquery自适应布局
  6. SQVI和SAP查询QUERY的区别和使用注意事项
  7. 中文版的jqGrid实例大全
  8. 一.Maven的安装和配置整理
  9. java中使用poi导出excel表格数据并且可以手动修改导出路径
  10. splay小结—植树结
  11. 启动MySql提示:The server quit without updating PID file(…)失败
  12. Python 中格式化字符串 % 和 format 两种方法之间的区别
  13. 学习笔记—log4j2
  14. Java开发笔记(三十一)字符类型的表达
  15. js自执行事件
  16. Eclipse打开java文件繁体字
  17. Codeforces379 F. New Year Tree
  18. 在controller中无法通过注解@Value获取到配置文件中定义的值
  19. jsp jsp的基本语法
  20. JavaSE日常笔记汇总

热门文章

  1. linux下输出json字符串,用python格式化
  2. 51NOD 1202 子序列个数 DP
  3. (转载)Unity 优化总结
  4. spring mvc添加静态资源访问时@Controller无效的解决
  5. WPF MATERAIL DESIGN TOOKIT
  6. java实现打开Windows控制台窗口
  7. POJ 2378 Tree Cutting (树的重心,微变形)
  8. org.springframework.beans.factory.BeanCreationException: Could not autowire
  9. 迅为IMX6Q开发板在道路交通信号控制系统解决方案中的应用
  10. Python 中函数(Function)的用法