n皇后(方法数)

1295 N皇后问题

时间限制: 2 s

空间限制: 128000 KB

题目等级 : 黄金 Gold

 题目描述 Description

在n×n格的棋盘上放置彼此不受攻击的n个皇后。按照国际象棋的规则,皇后可以攻击与之处在同一行或同一列或同一斜线上的棋子。n后问题等价于再n×n的棋盘上放置n个皇后,任何2个皇后不妨在同一行或同一列或同一斜线上。

输入描述 Input Description

给定棋盘的大小n (n ≤ 13)

输出描述 Output Description

输出整数表示有多少种放置方法。

样例输入 Sample Input

8

样例输出 Sample Output

92

数据范围及提示 Data Size & Hint

n<=13

(时限提高了,不用打表了)

分类标签 Tags

搜索

思路:大法师(DPS)

program aa;
var x:array[1..13]of longint;
    a,b,c:array[-14..26]of boolean;
    i,total,n:longint;
procedure try(i:longint);
var j:longint;
begin
    for j:=1 to n do
        if a[j]and b[i+j]and c[i-j] then//a,b,c分别判断同一列,同一对角线,另一条对角线是否有点。
        begin
            x[i]:=j;
            a[j]:=false;
            b[i+j]:=false;
            c[i-j]:=false;
            if i<n then try(i+1) else total:=total+1;//i为当前行数,i=n表示已找到一种方法
            a[j]:=true;
            b[i+j]:=true;
            c[i-j]:=true;
        end;
end;
begin
    fillchar(a,sizeof(a),true);
    fillchar(b,sizeof(b),true);
    fillchar(c,sizeof(c),true);
    readln(n);
    total:=0;
    try(1);
    writeln(total);
end.

一点反思:真的不难。

时间: 2024-10-16 18:51:42

n皇后(方法数)的相关文章

彻底解决Android 应用方法数不能超过65K的问题

尊重原创 :http://blog.csdn.net/yuanzeyao/article/details/41809423 作为一名Android开发者,相信你对Android方法数不能超过65K的限制应该有所耳闻,随着应用程序功能不断的丰富,总有一天你会遇到一个异常: Conversion to Dalvik format failed:Unable toexecute dex: method ID not in [0, 0xffff]: 65536 可能有些同学会说,解决这个问题很简单,我们

HDU 2157 How many ways??:矩阵快速幂【i到j共经过k个节点的方法数】

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2157 题解: 给你一个有向图,n个节点m条边,问你从i到j共经过k个节点的方法数(不算i点). 题解: 先用邻接矩阵存图. 假设k = 2,那么从i到j的方法数 = ∑ way[i][x] * way[x][j] (0<=x<n && x!=i && x!=j) 诶?快看,那是矩阵乘法! 设邻接矩阵为A,若i到j有边则val[i][j] = 1. k = 2时答案矩

Android 使用android-support-multidex解决Dex超出方法数的限制问题,让你的应用不再爆棚

如有转载,请声明出处: 时之沙: http://blog.csdn.net/t12x3456    (来自时之沙的csdn博客) 随着应用不断迭代,业务线的扩展,应用越来越大(比如集成了各种第三方sdk或者公共支持的jar包,项目耦合性高,重复作用的类越来越多),相信很多人都遇到过如下的错误: UNEXPECTED TOP-LEVEL EXCEPTION: java.lang.IllegalArgumentException: method ID not in [0, 0xffff]: 6553

安卓应用方法数超过64k解决办法:分割Dex

你的安卓项目功能很强大,对接了好多第三方开源库,项目越做越完善,代码越敲越爽.可是突然有一天报异常了. 错误:The number of method references in a .dex file cannot exceed 64K. 编译器提醒你,你的项目方法数超过64k了. AndroidStudio会提醒你: Learn how to resolve this issue at https://developer.android.com/tools/building/multidex

使用android-support-multidex解决Android方法数超过65535的问题

随着应用不断更新,业务的不断增加, 应运而生的应用可能需要集成了各种第三方library,相信很多人都遇到过如下类似的错误: UNEXPECTED TOP-LEVEL EXCEPTION: java.lang.IllegalArgumentException: method ID not in [0, 0xffff]: 65536 at com.android.dx.merge.DexMerger$6.updateIndex(DexMerger.java:501) at com.android.

Android应用打破65K方法数限制

随着应用不断迭代,业务线的扩展,应用越来越大(比如集成了各种第三方sdk或者公共支持的jar包,项目耦合性高,重复作用的类越来越多),相信很多人都遇到过如下的错误: <span style="color:#ff0000;">UNEXPECTED TOP-LEVEL EXCEPTION: java.lang.IllegalArgumentException: method ID not in [0, 0xffff]: 65536 at com.android.dx.merge

Android 使用android-support-multidex解决Dex超出方法数的限制问题

随着应用不断迭代,业务线的扩展,应用越来越大(比如集成了各种第三方sdk或者公共支持的jar包,项目耦合性高,重复作用的类越来越多),相信很多人都遇到过如下的错误: UNEXPECTED TOP-LEVEL EXCEPTION: java.lang.IllegalArgumentException: method ID not in [0, 0xffff]: 65536 at com.android.dx.merge.DexMerger$6.updateIndex(DexMerger.java:

[ACM] HDU 3398 String (从坐标0,0走到m,n且不能与y=x-1相交的方法数,整数唯一分解定理)

String Problem Description Recently, lxhgww received a task : to generate strings contain '0's and '1's only, in which '0' appears exactly m times, '1' appears exactly n times. Also, any prefix string of it must satisfy the situation that the number

数字和为sum的方法数

[编程题] 数字和为sum的方法数 给定一个有n个正整数的数组A和一个整数sum,求选择数组A中部分数字和为sum的方案数. 当两种选取方案有一个数字的下标不一样,我们就认为是不同的组成方案. 输入描述: 输入为两行: 第一行为两个正整数n(1 ≤ n ≤ 1000),sum(1 ≤ sum ≤ 1000) 第二行为n个正整数A[i](32位整数),以空格隔开. 输出描述: 输出所求的方案数 输入例子: 5 15 5 5 10 2 3 输出例子: 4方法思想:动态规划思想代码: import j

解决方法数超65535问题

构建工具: ANT: 在project.properties文件中添加dex.force.jumbo=true 1.生成一个超大的dex             2.优化方法数降至满足条件即可(和混淆包的优化方法数有所区别)             3.如果方法数超过很多也不能运行             4.该属性没经过大量测试验证所以打包发布切记不要加这个属性 Gradle:multiDexEnabled true