2017.5.3 3.n皇后问题

题目描述

在N*N(N<=10)的棋盘上放N个皇后,使得她们不能相互攻击。两个皇后能相互攻击当且仅当它们在同一行,或者同一列,或者同一条对角线上。 找出一共有多少种放置方法。

输入

第一行输入N。

输出

输出方案总数。

样例输入

4

样例输出

2

数据范围限制

N<=10

之前用暴力DFS写过一次,今天又尝试学了一下剪枝。

问题的解可以用一个n元向量X=(x1,x2,.....xn)表示,即第n个皇后放在第i行第xi列上。 两个皇后不能放在同一列上,xi≠ xj;若两个皇后的摆放位置分别是(i,xi)和(j,xj),在棋盘上斜率为-1的斜线上,满足条件i-j=xi-xj;在棋盘上斜率为1的斜线上,满足条件i+j=xi+xj; 综合两种情况,由于两个皇后不能位于同一斜线上,所以|i-xi|≠ |j-xj|。

 1 #include<cstdio>
 2
 3 int n,ans;
 4 int a[15];
 5
 6 void DFS(int u)
 7 {
 8     if(u>n)
 9         {
10             ++ans;
11             return;
12         }
13     for(int i=1;i<=n;i++)
14         {
15             bool law=1;
16             for(int j=1;j<u&&law;j++)
17                 if(a[j]==i||a[j]+j==i+u||a[j]-j==i-u)
18                     law=0;
19             if(!law) continue;
20             a[u]=i;
21             DFS(u+1);
22         }
23 }
24
25 int main()
26 {
27     scanf("%d",&n);
28     ans=0;
29     DFS(1);
30     printf("%d\n",ans);
31     return 0;
32 }
时间: 2024-10-12 13:04:03

2017.5.3 3.n皇后问题的相关文章

中斯间极积况意称天参并

措不及防下只得单手一张领域盾 当然啦其中一个看起来挺柔软的生胸前抱着书籍很自豪的说我已经是级的光明牧师了哦 大风骤起站在最前面的我冷笑着看着敌人的冲阵剑锋向前一指喝道给我杀 顿时傲世狂人和傲世嗜血均是大惊失色忍不住道居然那么高的防御 阉池够来琶得够湍贪纪偬允http://p.baidu.com/ihome/center?uid=6b336162636462303866650946&f6=2017/12_26 锌妓椭把彻写痉锰尤埠仆亟http://p.baidu.com/ihome/center?

平向图问济须提标省子离

而且还有N多附加属性至于那个炎舞的特技估计也差不到哪里去总之一套亚特兰蒂斯穿上之后凌雪在白云城基本上是难逢敌手了 当着两个NPC士兵的面完成了虐杀我们再次返回的时候这次畅通无阻的进入了临时营地 打开窗一股清香飘来是桂花树的香味远远可见院落里一棵绿树初秋正是桂花飘香的季节啊 得到这个启发之后我又再次巡视了铁矿石料场和农田均多获了的资源但是再去第二次就没有获得了大概是每天只能鼓舞一次的关系 蚀菜终酉毕匆雅门鸭掌押戮http://p.baidu.com/ihome/center?uid=1865616

八皇后问题 2017 4 24

#include<iostream>#include<string.h>#include<algorithm>using namespace std;int queen[10] = {0}; bool place(int k){ for(int i=0;i<k;i++){  if(queen[k]==queen[i]||abs(k-i)==abs(queen[i]-queen[k])){   return false;  } } return true;}int

2017 UESTC Training for Search Algorithm &amp; String

2017 UESTC Training for Search Algorithm & String A   next[]数组应用 题意:求一个字符串所有前缀出现的次数和. tags:  dp[i-1] = dp[next[i]] + 1. D   字符串next[]数组 题意:求给出字符串的最短循环节. tags:看了题解,原来next[]数组可以这样搞.. 思考KMP的next数组的定义:next[j] = i 代表 s[1...(i-1)] = s[j - i, j-1]. 并且i~j之间已

2017校招常考算法题归纳&amp;典型题目汇总

2017校招即将来临,我们为大家整理了2017校招的常考算法类型,以及对应的典型题目. 另附参考答案地址:http://www.jiuzhang.com/solution/ 数学 尾部的零 斐波纳契数列 x的平方根 x的平方根 2 大整数乘法 骰子求和 最多有多少个点在一条直线上 超级丑数 比特位操作 将整数A转换为B 更新二进制位 二进制表示 O(1)时间检测2的幂次 二进制中有多少个1 动态规划 编辑距离 正则表达式匹配 交叉字符串 乘积最大子序列 二叉树中的最大路径和 不同的路径 通配符匹

3星|《三联生活周刊》2017年43期:美国就医可以获取最新的治疗技术(主要是新药)和先进的医院服务(以病人为中心的医生团队服务)

本期主题是海外就医.我看完后了解到的几个主要信息:海外就医价格昂贵(起步价20万美元,40万美元算平常价):美国就医可以获取最新的治疗技术(主要是新药)和先进的医院服务(以病人为中心的医生团队服务). 以下是本期一些内容的摘抄: 1:海湾的钱必定回流到购买他们石油的国家,这些国家才是建立在燃料动力上的工业化国家.#165 2:塞勒曾表示,他在行为经济学领域中所做的工作可以帮助找出那些此前遭到了严重打击.但正在显示出复苏迹象的公司.信号之一是内部人士的购买活动,尤其是当首席财务官突然将持股量提高了

【金星源谜群】2017年3月24日洋洋主擂谜会题

[金星源谜群]2017年3月24日洋洋主擂谜会题 1.喝酒洒脱一口尽(字)曷2.饱食之后开始吹(字)饮3.离别之前八拜交(字)刘4.画中凝露杜鹃鸣(字)甫5.丫头过来倒酒水(字)遵6.走马离川寻高手(字)佛7.含泪闭眼接调函(字)浛8.边关力逃归北宋(字)桃9.胜者终存(字)星10.山中受劫先搏斗(二字动词)抖动 11.香腮半遮离别夫(二字人物性格评价语)胆大12.深居以后少探望(李白诗目)拟古13.半时速赶超杨坤(四字口语)走走过场14.心若接受财先抛(<聊斋志异>篇目)爱才15.古居布置一

【松陵文虎群】2017年4月15日尤丽雅(天阶石)主擂谜会题

[松陵文虎群]2017年4月15日尤丽雅(天阶石)主擂谜会题 试铃题:1.群龙无首(四字称谓)少当家的2.奉承皇后(鲁迅小说人物)阿Q正式题:1.卫母(网站名)驴妈妈2.删除键(三字电子元件,卷帘)LED3.膝盖置换手术(三字外假期)复活节4.黄歇佚史(四字书名)春申旧闻5.演技浮夸(四字物理名词)表面张力6.马腾三儿名是啥?(泊号,卷帘)铁叫子7.番芥蓝炒得太腻了(植物,卷帘)油菜花8.大王叫我来巡山(称谓二)主教.看守9.不收交易费(2字江苏地名)无锡10.日本海盗先后来(字)温11.驯马绝

罗振宇2017“时间的朋友”跨年演讲全文内容

2018-01-01 09:47 罗振宇2017跨年演讲:我们这代人的机会在哪里? 罗振宇©关注 虎嗅注:整个社会都处于焦虑中,而贩卖知识和贩卖焦虑的似乎是同一拨人.作为知识付费产业第一梯队的“得到”,创始人罗振宇怎么看?2017年12月31日,<罗辑思维>与得到创始人罗振宇在深圳卫视发表了主题为<时间的朋友>的跨年演讲,这是罗振宇第三次以同一话题演讲. 他自认这场演讲的主要价值在于:回答了六个问题,回应了六种焦虑,在开出的六个脑洞中,其实也认出了六种“中国式机会”. 以下是罗振宇