...就是N皇后

输出前三种可能排序

输出所有可能排序的方法数

vis[0][i]为i点是否已用

vis[1][m+i]为i点副对角线是否已用  m+i 为从左至右第 m+i 条副对角线

vis[1][m+n-i]为i点主对角线是否已用 m+n-i 为从右至左第 m+n-i 条主对角线

#include<iostream>
#include<algorithm>
#include<stdio.h>
#include<cstring>
#include<math.h>
using namespace std;
int n,cnt;
int ans[],vis[][];
void DFS(int m)
{
if(m==n+)
{
cnt++;
if(cnt<=)
{
for(int i=;i<n;i++)
printf("%d ",ans[i]);
printf("%d\n",ans[n]);
}
return ;
}
for(int i=;i<=n;i++)
{
if(!vis[][i]&&!vis[][m+i]&&!vis[][m-i+n])
{
vis[][i]=vis[][m+i]=vis[][m-i+n]=;
ans[m]=i; DFS(m+);
vis[][i]=vis[][m+i]=vis[][m-i+n]=;
}
}
}
int main()
{
while(~scanf("%d",&n))
{
memset(ans,,sizeof(ans));
cnt=; DFS();
printf("%d\n",cnt);
} return ;
}

最新文章

  1. tomcat 快速部署静态文件
  2. java学习之面向对象(4)
  3. HDU2222
  4. 使用dbms_system追踪其它session
  5. MoneyUtil
  6. Vmware linux 安装 Vmware Tools 提示只读
  7. poj1269
  8. Unity3d之将terrain转化成mesh
  9. JavaScript处理json格式数据
  10. linux—find常见指令用法示例
  11. Oracle子查询中any、some、all之间的区别
  12. JavaScript的作用域
  13. node express将请求重定向为https
  14. Matlab 中subsystem mask封装子系统
  15. ubuntu安装docker-ce
  16. 《http权威指南》读书笔记9
  17. [LeetCode] 876. Middle of the Linked List_Easy tag: Linked List ** slow, fast pointers
  18. API 接口自动化测试框架
  19. Vue项目中如何使用Element-UI以及如何使用sass
  20. PyCharm 2018实现远程调试代码

热门文章

  1. delphi Copy函数 和 Pos函数
  2. Delphi exe实例之间传递cmd参数
  3. flutter 修饰盒子
  4. LeetCode 1041. Robot Bounded In Circle (困于环中的机器人)
  5. [转]ThinkPHP分页实例
  6. Python 文件处理一
  7. 20140315 模板类pair的用法 2、visual 2010调整代码格式是ctrl+k+
  8. 安装mysql时,服务无法启动的问题
  9. Deep Dive into Neo4j 3.5 Full Text Search
  10. java编程——数据的加法