N皇后问题
Time Limit: 2000/1000 MS (Java/Others)Memory Limit: 32768/32768 K (Java/Others)
Total Submission(s): 3860Accepted Submission(s): 1801
Problem Description
在N*N的方格棋盘放置了N个皇后,使得它们不相互攻击(即任意2个皇后不允许处在同一排,同一列,也不允许处在与棋盘边框成45角的斜线上。
你的任务是,对于给定的N,求出有多少种合法的放置方法。
Input
共有若干行,每行一个正整数N≤10,表示棋盘和皇后的数量;如果N=0,表示结束。
Output
共有若干行,每行一个正整数,表示对应输入行的皇后的不同放置数量。
Sample Input
Sample Output
1
92
10
算法入门经典有讲=。=
#include<cstdio>
#include<cstring>
int board[12];
int sum[12]={0};
bool used[3][20];
int n,ans;
void dfs(int cur)
{
int i;
if(cur==n)
ans++;
else
{
for(i=0;i<n;i++)
{
if(!used[0][i]&&!used[1][cur+i]&&!used[2][cur-i+n])
{
board[cur]=i;
used[0][i]=used[1][cur+i]=used[2][cur-i+n]=1;
dfs(cur+1);
used[0][i]=used[1][cur+i]=used[2][cur-i+n]=0;
}
}
}
}
int main()
{
while(scanf("%d",&n),n)
{
memset(used,0,sizeof(used));
ans=0;
if(sum[n]!=0)
printf("%d\n",sum[n]);
else
{
dfs(0);
printf("%d\n",ans);
sum[n]=ans;
}
}
return 0;
}
分享到:
相关推荐
HDOJ的题目分类系统通常依据题目的难度、涉及的算法类型、问题的背景等要素进行划分,这使得用户可以根据自己的学习进度和兴趣选择适合的题目。例如,初级题目可能涵盖基础的数据结构和算法,如排序、搜索;而高级...
【标题】"hdoj.rar_Dividing HDOJ_OJ 1082_hdoj 10_杭电oj_杭电oj1000" 涉及的知识点主要围绕着“杭电在线判题系统(HDOJ)”以及其中的题目1082和10系列题目。HDOJ是杭州电子科技大学主办的一个在线编程竞赛平台,...
### 描述分析:“c语言 最短路 是hdoj上的一个最短路问题,写的很牛” - **C语言**:题目解决方案是用C语言编写的。 - **最短路**:该题目要求求解图中的最短路径问题。 - **写的很牛**:暗示提供的代码实现较为...
ACM ICPC HDOJ1002
【标题】"HDOJ 80题 Java"是一份专为Java程序员设计的在线编程挑战集合,源自杭州电子科技大学(HDOJ)的在线评测系统。这些题目旨在帮助Java开发者提升算法理解与编程能力,同时也为那些习惯于C++但希望在Java环境...
ACM ICPC HDOJ1001
hdoj1001标程
【ACM HDOJ 课件】是一套涵盖了多种计算机科学竞赛中常见算法与理论的教育资源,主要针对ACM(国际大学生程序设计竞赛)和HDOJ(华中地区大学生在线编程题库)的训练。这些课件深入浅出地讲解了在解决复杂问题时所需...
HDOJ1000.java HDOJ1001.java HDOJ1089.java HDOJ1090.java HDOJ1091.java HDOJ1092.java HDOJ1093.java HDOJ1094.java HDOJ1095.java HDOJ1108.java HDOJ1406.java HDOJ2001.java HDOJ2002.java HDOJ2003.java HDOJ...
6. **培养问题解决能力**:通过解决实际问题,你将学会如何分析问题、设计算法、编写代码,这在软件开发和日常工作中都是至关重要的技能。 总的来说,HDOJ离线版是一个集学习、实践和挑战于一体的编程资源,无论是...
hdoj1004,解题代码,答案代码,欢迎下载
ACM ICPC HDOJ1003
ACM ICPC HDOJ1008
#### 一、问题背景与题目概述 在深入了解代码之前,我们先来了解下题目背景。`hdoj1005 Number Sequence` 是杭州电子科技大学在线评测系统(Online Judge,简称OJ)中的一个编程题目。这类题目通常涉及算法设计与...
本题目来源于杭州电子科技大学的在线评测系统(HDOJ),编号为1002的大整数相加问题。该题目主要考察的是编程者对于大整数处理的基本技巧以及对数组、循环等基础数据结构和算法的理解。 #### 题目要求概述 题目...
"hdoj--acm题目,有注释" 本资源提供了多个 ACM 题目的解决方案,代码都带有注释,非常适合初学者学习。下面是对每个题目的知识点总结: 2000:本题目要求输入三个字符,输出按照从小到大排序的结果。本代码使用了...
【标题】"HDOJ.rar_HD_HDOJ" 是一个与HDU(杭州电子科技大学)在线判题系统HDOJ相关的压缩包文件,其中包含了大量编程题目的源代码。 【描述】提到,这个压缩包包含了几百道HDOJ题目的源代码,这意味着它是一个宝贵...
【标题解析】:“hdoj 2013 多校训练4标程+解题报告”这个标题表明,这是一个关于2013年Happy Dream Online Judge(简称hdoj)组织的多校联合编程训练的资料。"4标程"意味着包含了四道题目(或者可能是四个阶段)的...
ACM ICPC HDOJ1000
【OJ.tar.gz_HDOJ _OJ源码_oj】是一个包含编程竞赛平台HDOJ(Happy Ding Octopus Judge)部分源代码的压缩文件。这个压缩包的主要目的是供学习和研究使用,尤其是针对50至60题目的解题算法和系统实现。通过分析这些...