N皇后问题(HDU—2253)

简介: N皇后问题(HDU—2253)

题目:

在N*N的方格棋盘放置了N个皇后,使得它们不相互攻击(即任意2个皇后不允许处在

同一排,同一列,也不允许处在与棋盘边框成45角的斜线上。

你的任务是,对于给定的N,求出有多少种合法的放置方法。

Input

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

Output

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

Sample Input

1
8
5
0

Sample Output

1
92
10

解题思路:这个题是放棋子的,要求两个棋子不能放在同一行同一列或者同一成45°角的斜线上。这个题就是一行一行的去寻找,然后看列或者对角线上是否放的有棋子。

注意:不打表的话会时间超时,所以找出n皇后对应的放的个数。

程序代码:

#include<stdio.h>
#include<string.h>
int v[2000],a[20];
int n,tot;
void search(int cur)
{
  int i,j;
  if(cur==n)
    tot++;
  else
    for(i=0;i<n;i++)
    {
      int ok=1;
      v[cur]=i;
      for(j=0;j<cur;j++)
        if(v[cur]==v[j]||cur-v[cur]==j-v[j]||cur+v[cur]==j+v[j])
        {
          ok=0;
          break;
        }
      if(ok==1)
        search(cur+1);
    } 
}
int main()
{
  int m,i;
  n=0;
  i=0;
  while(n<=11)
  {
    tot=0;
    memset(v,0,sizeof(v));
    search(0);
    a[n]=tot;
    n++;  
  }
  while(scanf("%d",&m),m!=0)
  {
    printf("%d\n",a[m]);
  }
  return 0;
}
相关文章
|
存储 缓存 Android开发
android分区概述
android分区概述
848 0
|
Docker Ruby 容器
docker安装gitlab-ee并破解
本文介绍docker安装和gitlab-ee的破解方法
docker安装gitlab-ee并破解
|
缓存 监控 安全
构建高效后端系统的最佳实践
本文将深入探讨如何构建一个高效的后端系统,从设计原则、架构选择到性能优化等方面详细阐述。我们将结合实际案例和理论分析,帮助读者了解在构建后端系统时需要注意的关键点,并提供一些实用的建议和技巧。
291 6
|
12月前
|
存储 关系型数据库 分布式数据库
PolarDB PG 版冷热数据分层功能介绍
本文介绍了云原生数据库PolarDB PG版的冷热数据分层存储功能,涵盖其原理、特性及最佳实践。冷热分层存储通过将冷数据归档至OSS(对象存储服务),实现低成本高效存储,同时保持SQL操作透明性和性能优化。支持多种分层模式,如表与索引分层、大字段独立归档等,并提供压缩和缓存机制以提升访问速度。此外,还介绍了如何通过DDL语句轻松转存数据至OSS,以及一系列最佳实践,包括自动冷热分层、无锁表转存和一键转存等功能。
725 36
|
Oracle Java 关系型数据库
Java SpringBoot集成Activiti7工作流
Java SpringBoot集成Activiti7工作流
|
SQL 数据库 关系型数据库
【SQL注入】 注入神器sqlmap的使用
数据库 SQL注入漏洞 sqlmap
722 2
|
Oracle 关系型数据库 数据库
Oracle 11gR2学习之三(创建用户及表空间、修改字符集和Oracle开机启动)
Oracle 11gR2学习之三(创建用户及表空间、修改字符集和Oracle开机启动)
|
存储 编解码 监控
一文详解|如何写出优雅的代码
和大家一起探讨一下优雅代码
121026 20
一文详解|如何写出优雅的代码
|
Kubernetes 安全 调度
深度解读:阿里云全球首发的容器计算服务 ACS 诞生背景、核心技术与应用场景
深度解读:阿里云全球首发的容器计算服务 ACS 诞生背景、核心技术与应用场景
70421 45
|
网络协议 数据安全/隐私保护 Windows
【计算机网络】数据链路层——以太网
【计算机网络】数据链路层——以太网