HUD--2553 N皇后问题
2024-08-23 12:20:09
Problem Description
在N*N的方格棋盘放置了N个皇后,使得它们不相互攻击(即任意2个皇后不允许处在同一排,同一列,也不允许处在与棋盘边框成45角的斜线上。
你的任务是,对于给定的N,求出有多少种合法的放置方法。
你的任务是,对于给定的N,求出有多少种合法的放置方法。
Input
共有若干行,每行一个正整数N≤10,表示棋盘和皇后的数量;如果N=0,表示结束。
Output
共有若干行,每行一个正整数,表示对应输入行的皇后的不同放置数量。
Sample Input
1
8
5
0
8
5
0
Sample Output
1
92
10
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 ;
}
最新文章
- 一步步开发自己的博客 .NET版(11、Web.config文件的读取和修改)
- python 面向对象初级篇
- Javascript Date Format
- 《CDN web加速代理》RHEL6
- jquery自适应布局
- SQVI和SAP查询QUERY的区别和使用注意事项
- 中文版的jqGrid实例大全
- 一.Maven的安装和配置整理
- java中使用poi导出excel表格数据并且可以手动修改导出路径
- splay小结—植树结
- 启动MySql提示:The server quit without updating PID file(…)失败
- Python 中格式化字符串 % 和 format 两种方法之间的区别
- 学习笔记—log4j2
- Java开发笔记(三十一)字符类型的表达
- js自执行事件
- Eclipse打开java文件繁体字
- Codeforces379 F. New Year Tree
- 在controller中无法通过注解@Value获取到配置文件中定义的值
- jsp jsp的基本语法
- JavaSE日常笔记汇总
热门文章
- linux下输出json字符串,用python格式化
- 51NOD 1202 子序列个数 DP
- (转载)Unity 优化总结
- spring mvc添加静态资源访问时@Controller无效的解决
- WPF MATERAIL DESIGN TOOKIT
- java实现打开Windows控制台窗口
- POJ 2378 Tree Cutting (树的重心,微变形)
- org.springframework.beans.factory.BeanCreationException: Could not autowire
- 迅为IMX6Q开发板在道路交通信号控制系统解决方案中的应用
- Python 中函数(Function)的用法