zoukankan      html  css  js  c++  java
  • N皇后

    在n×n的国际象棋盘上,放置n个皇后,使任何一个皇后都不能吃掉另一个,需满足的条件是:同一行、同一列、同一对角线上只能有一个皇后。
    求所有满足要求的方案数。
     
     
     
    【样例输入】
    4
    【样例输出】
    2
     
     1 #include <iostream>
     2 
     3 using namespace std;
     4 
     5 int n,ans;
     6 bool judge[4][5005];
     7 
     8 void DFS(int line)
     9 {
    10     if(line==n+1)
    11     {
    12         ans++;
    13         return ;
    14     }
    15     for(int i=1;i<=n;i++)
    16     {
    17         if(!judge[1][i]&&!judge[2][i+line]&&!judge[3][n+10-i+line])
    18         {
    19             judge[1][i]=true,judge[2][i+line]=true,judge[3][n+10-i+line]=true;
    20             DFS(line+1);
    21             judge[1][i]=false,judge[2][i+line]=false,judge[3][n+10-i+line]=false;
    22         }
    23     }
    24     return ;
    25 }
    26 
    27 int main()
    28 {
    29     cin>>n;
    30     DFS(1);
    31     cout<<ans;
    32     return 0;
    33 }
    练习深搜
    ——每当你想要放弃的时候,就想想是为了什么才一路坚持到现在。
  • 相关阅读:
    js中Frame框架的属性获取(1)
    c#中文件上传(1)
    表单验证Validform
    Mybatis语法笔记
    js的checkbox
    调用微信Js-SDK支付
    调用微信Js-SDK图片
    java后台上传到linux
    web服务器内层溢出
    SpringMVC
  • 原文地址:https://www.cnblogs.com/Shy-key/p/6613572.html
Copyright © 2011-2022 走看看