• HDU2553 N皇后问题


    思路:回溯法求解。关键在于找出皇后能攻击的格子,竖直方向的好找,斜45方向就需要找下规律。

    列 - 行

    0  1  2  3   4

    -1  0  1  2  3

    -2 -1  0  1  2

    -3 -2 -1  0  1

    -4 -3 -2 -1  0 

    列+行

    0 1 2 3 4

    1 2 3 4 5

    2 3 4 5 6

    3 4 5 6 7

    4 5 6 7 8

    AC代码:

     1 #include<iostream>
     2 #include<string.h>
     3 using namespace std;
     4 int flag[15];
     5 int vis[2][30];
     6 int ans[15];
     7 int dfs(int num,int n){
     8     int cnt=0;
     9     if(num==0){
    10         return 1;
    11     }
    12     for(int i=1;i<=n;i++){
    13         if(flag[i]||vis[0][i-num+n]||vis[1][i+num]){
    14             continue;
    15         }
    16         flag[i]=vis[0][i-num+n]=vis[1][i+num]=1;
    17         cnt+=dfs(num-1,n);
    18         flag[i]=vis[0][i-num+n]=vis[1][i+num]=0;
    19     }
    20     return cnt;
    21 }
    22 int main(){
    23     for(int i=1;i<=10;i++){   //因为不知道询问多少次,所以先打表
    24         memset(vis,0,sizeof(vis));
    25         memset(flag,0,sizeof(flag));
    26         ans[i]=dfs(i,i);
    27     }
    28     int n;
    29     while(cin>>n){
    30         memset(flag,0,sizeof(flag));
    31         memset(vis,0,sizeof(vis));
    32         if(n==0){
    33             break;
    34         }
    35         cout<<ans[n]<<endl;
    36     }
    37     return 0;
    38 }
  • 相关阅读:
    PSR
    php类与对象
    二进制、位运算及其用处
    安装LNMP笔记
    计算机基础
    Python3编写HFS(CVE2014-6287)检测脚本
    windows和iis对应版本关系
    phpStudy8.1.0.1配置子域名多网站
    Xml外部实体注入
    xss小游戏通关-全答案
  • 原文地址:https://www.cnblogs.com/ISGuXing/p/8889368.html
Copyright © 2020-2023  润新知