zoukankan      html  css  js  c++  java
  • 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

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

     1 #include<iostream>
     2 #include<cmath>
     3 using namespace std;
     4 int tot;
     5 int vis[1001];//
     6 int zd[1001];//左方向对角线
     7 int yd[1001];//右方向对角线
     8 int n;
     9 void f(int k)
    10 {
    11     if(k==n)
    12     {
    13         tot++;
    14         return;
    15     }
    16     else
    17     {
    18         for(int j=1;j<=n;j++)
    19         {
    20             if(vis[j]==0&&zd[j+k]==0&&yd[k-j+n]==0)
    21             {
    22                 vis[j]=1;
    23                 zd[j+k]=1;
    24                 yd[k-j+n]=1;
    25                 f(k+1);
    26                 vis[j]=0;
    27                 zd[j+k]=0;
    28                 yd[k-j+n]=0;
    29             }
    30         }
    31     }
    32 }
    33 int main()
    34 {
    35     
    36     cin>>n;
    37     f(0);// 一定是0,千万别是1 ,。。。。一位调试了1个小时的oier的忠告 
    38     cout<<tot;
    39     return 0;
    40 }
  • 相关阅读:
    【福利】乳摇动画初探
    碎裂效果尝试(clip-path篇)
    碎裂效果尝试(canvas篇)
    自己的HTML5 播放器
    纯CSS实现选项卡
    企鹅阿里实习生面试
    关于使用indexedDB的本地存储(3)
    关于使用indexedDB的本地存储(2)
    关于使用indexedDB的本地存储(1)
    关于ajax分段上传文件实例~
  • 原文地址:https://www.cnblogs.com/zwfymqz/p/6601791.html
Copyright © 2011-2022 走看看