zoukankan      html  css  js  c++  java
  • hdu 2553 N皇后问题

    题目:http://acm.hdu.edu.cn/showproblem.php?pid=2553

    dfs的题

     1 #include<iostream>
     2 #include<stdio.h>
     3 #include<math.h>
     4 #include<stdlib.h>
     5 #include<string.h>
     6 using namespace std;
     7 const int N=20;
     8 int n;
     9 int count;//多少种排列组合
    10 int a[N];//a[i]=j代表的是在i行j列
    11 int visit[N];//用来排除列,例:a[1]=1;上有皇后,那么visit[a[1]]=1;
    12 int check(int i,int j)//验证第i行j列
    13 {
    14     int k;
    15     int flag=1;
    16     for(k=1;k<i;k++)
    17     {
    18         if( abs(k-i) == abs(j-a[k]) )//检查是否在斜线相交
    19         flag=0;
    20     }
    21     return flag;
    22 }
    23 
    24 void dfs(int i)//i代表行数
    25 {
    26      if(i>n)
    27      count++;
    28      else
    29      {
    30          int j;
    31          for(j=1;j<=n;j++)
    32          {
    33              if(visit[j]==0 && check(i,j))//检查位置
    34              {
    35                  a[i]=j;
    36                  visit[j]=1;
    37                  dfs(i+1);
    38                  visit[j]=0;
    39              }
    40          }
    41      }
    42 }
    43 
    44 int main()
    45 {
    46     //freopen("in.txt","r",stdin);
    47     int b[15];
    48     memset(b,0,sizeof(b));
    49     int i;
    50     count=0;
    51     for(i=1;i<=10;i++)
    52     {
    53         n=i;
    54         memset(a,0,sizeof(a));
    55         memset(visit,0,sizeof(visit));
    56         dfs(1);//从第一行开始
    57         b[i]=count;
    58         //printf("%d ",b[i]);
    59         count=0;
    60     }
    61     int m;
    62     while(~scanf("%d",&m))//打表后输出,不然时超
    63     {
    64         if(m==0)
    65         break;
    66         printf("%d
    ",b[m]);
    67     }
    68     return 0;
    69 }
  • 相关阅读:
    JavaScript深入解读
    CentOS7上安装与配置Tomcat8与MySQL5.7
    码云的初步使用
    MySQL安装与初步操作
    自定义消息队列
    用Executors工具类创建线程池
    Java中的BlockingQueue队列
    Restful对于URL的简化
    docker push 实现过程
    通过docker-machine和etcd部署docker swarm集群
  • 原文地址:https://www.cnblogs.com/xuesen1995/p/4374186.html
Copyright © 2011-2022 走看看