...就是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 ;
}

USACO training course Checker Challenge N皇后 /// oj10125的更多相关文章

  1. USACO 6.5 Checker Challenge

    Checker Challenge Examine the 6x6 checkerboard below and note that the six checkers are arranged on ...

  2. 『嗨威说』算法设计与分析 - 回溯法思想小结(USACO-cha1-sec1.5 Checker Challenge 八皇后升级版)

    本文索引目录: 一.回溯算法的基本思想以及个人理解 二.“子集和”问题的解空间结构和约束函数 三.一道经典回溯法题点拨升华回溯法思想 四.结对编程情况 一.回溯算法的基本思想以及个人理解: 1.1 基 ...

  3. USACO 1.5.4 Checker Challenge跳棋的挑战(回溯法求解N皇后问题+八皇后问题说明)

    Description 检查一个如下的6 x 6的跳棋棋盘,有六个棋子被放置在棋盘上,使得每行,每列,每条对角线(包括两条主对角线的所有对角线)上都至多有一个棋子. 列号 0 1 2 3 4 5 6 ...

  4. USACO1.5 Checker Challenge(类n皇后问题)

    B - B Time Limit:1000MS     Memory Limit:16000KB     64bit IO Format:%lld & %llu   Description E ...

  5. Checker Challenge跳棋的挑战(n皇后问题)

    Description 检查一个如下的6 x 6的跳棋棋盘,有六个棋子被放置在棋盘上,使得每行,每列,每条对角线(包括两条主对角线的所有对角线)上都至多有一个棋子. 列号 0 1 2 3 4 5 6 ...

  6. TZOJ 3522 Checker Challenge(深搜)

    描述 Examine the 6x6 checkerboard below and note that the six checkers are arranged on the board so th ...

  7. 关于USACO Training

    做了这么久的题目,突然发现最经典的 USACO Training 还没有做过?加速水一遍吧!我会把题解放在上面的.

  8. USACO Training Section 1.1 坏掉的项链Broken Necklace

    题目描述 你有一条由N个红色的,白色的,或蓝色的珠子组成的项链(3<=N<=350),珠子是随意安排的. 这里是 n=29 的二个例子: 第一和第二个珠子在图片中已经被作记号. 图片 A ...

  9. USACO Training Section 1.1 贪婪的送礼者Greedy Gift Givers

    P1201 [USACO1.1]贪婪的送礼者Greedy Gift Givers 题目描述 对于一群(NP个)要互送礼物的朋友,GY要确定每个人送出的钱比收到的多多少.在这一个问题中,每个人都准备了一 ...

随机推荐

  1. BOM——特效

    特效 偏移量 offsetParent用于获取定位的父级元素 offsetParent和parentNode的区别  var box = document.getElementById('box'); ...

  2. springboot连接mysql数据库,JdbcTemplate和spring JPA方式

    SQL部分 CREATE TABLE test( id ) primary key, name ) not null, age ), address ) ); ,,'bj'); ,,'sh'); ,, ...

  3. NX二次开发-NX+VS写代码设断点调试技巧

    在做NX二次开发的时候写完代码,编译可以通过,但是执行的时候却没有反应,或者得到的结果不对,说明肯定有地方传值出错了.我在查找代码错误的时候有几种方法:1.uc1601打印函数输入和输出的值看对不对. ...

  4. JSP/Servlet笔记

    一.Servlet简介 Servlet程序可以运行于任何服务器,如web.email.FTP等,所有servlet程序必须实现javax.servlet接口.GenericServlet是实现了jav ...

  5. jquery scrollTop() 方法

    原文地址:http://www.w3school.com.cn/jquery/css_scrolltop.asp 实例 设置 元素中滚动条的垂直偏移: $(".btn1").cli ...

  6. CodeForces 1152F1 Neko Rules the Catniverse (Small Version)

    题目链接:http://codeforces.com/problemset/problem/1152/F1 题目大意 有 n 个星球,给定限制 m,从 x 星球走到 y 星球的条件是,$1 \leq ...

  7. 顺时针打印矩阵元素(python实现)

    我觉得我的算法比较简单易懂,比网上的那些简单些.至于时间复杂度就没有比较了. 算法思想:从最外层向内层遍历矩阵 # my algorithmimport math def print_matrix(m ...

  8. solr添加IK分词和自己定义词库

    下载IK分词IK Analyzer 2012FF_hf1.zip 下载地址:http://yunpan.cn/cdvATy8899Lrw (提取码:c10d) 1.将IKAnalyzer2012FF_ ...

  9. 在centos6.5 上安装最新版mysql

    在mysql上如果直接安装mysql安装的不是5.6版本以上.下面记录怎么解决安装最新版mysql5.6以上. 1.查看本机都安装了mysql什么版本:rpm -qa | grep mysql,默认是 ...

  10. 初学hibernate的心得体会

    在初步学习了hibernate之后,使我明白了hibernate是一个怎样的软件.hibernate是一个比较独立的框架,它不需要太多其他软件的支持.hibernate是一个开放源代码的关系映射框架, ...