USACO training course Checker Challenge N皇后 /// oj10125
2024-09-01 13:09:03
...就是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 ;
}
最新文章
- tomcat 快速部署静态文件
- java学习之面向对象(4)
- HDU2222
- 使用dbms_system追踪其它session
- MoneyUtil
- Vmware linux 安装 Vmware Tools 提示只读
- poj1269
- Unity3d之将terrain转化成mesh
- JavaScript处理json格式数据
- linux—find常见指令用法示例
- Oracle子查询中any、some、all之间的区别
- JavaScript的作用域
- node express将请求重定向为https
- Matlab 中subsystem mask封装子系统
- ubuntu安装docker-ce
- 《http权威指南》读书笔记9
- [LeetCode] 876. Middle of the Linked List_Easy tag: Linked List ** slow, fast pointers
- API 接口自动化测试框架
- Vue项目中如何使用Element-UI以及如何使用sass
- PyCharm 2018实现远程调试代码
热门文章
- delphi Copy函数 和 Pos函数
- Delphi exe实例之间传递cmd参数
- flutter 修饰盒子
- LeetCode 1041. Robot Bounded In Circle (困于环中的机器人)
- [转]ThinkPHP分页实例
- Python 文件处理一
- 20140315 模板类pair的用法 2、visual 2010调整代码格式是ctrl+k+
- 安装mysql时,服务无法启动的问题
- Deep Dive into Neo4j 3.5 Full Text Search
- java编程——数据的加法