题目描述

 1 #include<cstdio>
 2 #include<cstring>
 3 int count, N;
 4 int vis[3][40];
 5 void dfs(int c)
 6 {
 7     if(c == N){count++;return ;}
 8     for(int i=0; i<N; i++){//c行i列是否能放入
 9         if(vis[0][i] == 0 && vis[1][c+i] == 0 && vis[2][c-i+N] == 0){
10             vis[0][i] = vis[1][c+i] = vis[2][c-i+N] = 1;
11             dfs(c+1);
12             vis[0][i] = vis[1][c+i] = vis[2][c-i+N] = 0;
13         }
14     }
15 }
16 int main()
17 {
18     int a[]={0,1,0,0,2,10,4,40,92,352,724,2680,14200,73712,365596,2279184,14772512};
19     while(~scanf("%d", &N))
20     {
21         if(N==0)break;
22         //count = 0;
23         //memset(vis, 0, sizeof(vis));
24         //dfs(0);
25         //printf("%d\n", count);
26         printf("%d\n",a[N]);
27     }
28     return 0;
29 }

View Code

在N*N的方格棋盘放置了N个皇后,使得它们不相互攻击(即任意2个皇后不允许处在同一排,同一列,也不允许处在与棋盘边框成45角的斜线上。
你的任务是,对于给定的N,求出有多少种合法的放置方法。

输入格式

共有若干行,每行一个正整数N≤16,表示棋盘和皇后的数量;如果N=0,表示结束。

输出

共有若干行,每行一个正整数,表示对应输入行的皇后的不同放置数量。

样例输入

1
8
5
0

样例输出

1
92
10

转载于:https://www.cnblogs.com/qiu520/p/3603673.html

AYOJ N皇后问题相关推荐

  1. n皇后问题JS实现(N-Queens)

    n皇后问题作为经典的面试题,今天在LeetCode刷到,解法比较直接,回溯递归.其他解法咱也不会.... Leetcode地址:https://leetcode.com/problems/n-quee ...

  2. 回溯 皇后 算法笔记_算法笔记_04_回溯

    设计思想: (1)适用:求解搜索问题和优化问题. (2)搜索空间:数,节点对应部分解向量,可行解在树叶上. (3)搜索过程:采用系统的方法隐含遍历搜索树. (4)搜索策略:深度优先,宽度优先,函数优先 ...

  3. C语言局部搜索算法(爬山法,模拟退火法,遗传算法)求解八皇后问题

    C语言局部算法求解八皇后问题 写在前面 八皇后问题及局部搜索算法 爬山法(hill-climbing searching) 算法介绍 代码实现 退火法(simulated annealing) 算法介 ...

  4. 递归/回溯:八皇后问题N-Queens

    N皇后问题是计算机科学中最为经典的问题之一,该问题可追溯到1848年,由国 际西洋棋棋手马克斯·贝瑟尔于提出了8皇后问题. 将N个皇后放摆放在N*N的棋盘中,互相不可攻击,有多少种摆放方式,每种摆 放 ...

  5. 八皇后的一个回溯递归解法

    解法来自严蔚敏的数据结构与算法. 代码如下: #include <iostream> using namespace std; const int N = 8;//皇后数 int coun ...

  6. Prolog学习:数独和八皇后问题

    上一篇简单介绍了下Prolog的一些基本概念,今天我们来利用这些基本概念解决两个问题:数独和八皇后问题. 数独 数独是一个很经典的游戏: 玩家需要根据n×n盘面上的已知数字,推理出所有剩余空格的数字, ...

  7. N皇后问题的位运算求解——目前最快的方法

    核心代码如下: 1 void test(int row, int ld, int rd) 2 { 3 int pos, p; 4 if ( row != upperlim ) 5 { 6 pos = ...

  8. UVa 167(八皇后)、POJ2258 The Settlers of Catan——记两个简单回溯搜索

    UVa 167 题意:八行八列的棋盘每行每列都要有一个皇后,每个对角线上最多放一个皇后,让你放八个,使摆放位置上的数字加起来最大. 参考:https://blog.csdn.net/xiaoxiede ...

  9. 带你轻而易举的学习python——八皇后问题

    首先我们来看一下这个著名的八皇后问题 八皇后问题:在8×8格的国际象棋上摆放八个皇后,使其不能互相攻击,即任意两个皇后都不能处于同一行.同一列或同一斜线上,问有多少种摆法. 在这个问题提出之后人们又将 ...

最新文章

  1. Iconfont使用手册
  2. 学学python(4):面向对象及类,模块
  3. 多线程之实现Runnable接口及其优点
  4. JS基础--Date.parse(),Date.UTC()和Date.now()
  5. Oracle开源Fn,加入Serverless之争
  6. flink入门案例之WordCount
  7. centos下yum安装lamp
  8. [bzoj1855][Scoi2010]股票交易_动态规划_单调队列
  9. 机器学习:模型评估与选择:性能度量——代价敏感错误率与代价曲线
  10. Maven常用命令_飘云羽逸_新浪博客
  11. 遛狗牵绳AI识别实时监测助力智慧城市
  12. python爬虫爬取拉勾网招聘信息
  13. 差距:我是如何一步步落后于别人
  14. tt作曲家简谱打谱软件_每个人的本地作曲家! 会议友好的满意设置
  15. 如何压缩动态图片大小?gif图太大了怎么压缩?
  16. MLC转成SLC模式没有想象的那么好
  17. 在火狐浏览器上安装Tampermonkey和Greasy Fork和使用iciba划词翻译
  18. 台达0.4KW伺服上电报AL013
  19. python 异步加载图片_Python 爬取拉钩网异步加载页面
  20. Linux磁盘空间释放

热门文章

  1. 【Asp.Net】C#中checked关键字的应用
  2. Linux常用命令大全(三)
  3. SuperMap_iClient3D_10.2.1_for_WebGL下载
  4. alan turing_深入探讨Alan Turing的生活和遗产:5本及更多书籍
  5. linux gnome_GNOME,生日快乐:喜欢这个Linux桌面的8个理由
  6. 猎鹰spacex_我从SpaceX中学到的关于开源的一切
  7. 苹果开发者修改团队名称_鼓励您的团队对项目进行更改的5步计划
  8. java 情侣最佳升高_2016年最佳情侣:显示经理和窗口经理
  9. sci写作sci写作模板_有写作错误吗? bibisco简介
  10. 文档加载完成覆盖_在完成文档之前,作业尚未完成