zoukankan      html  css  js  c++  java
  • 【POJ】1321棋盘问题

    题目链接:http://poj.org/problem?id=1321

    题意:见题干,很清楚了。

    题解:简单dfs,参照八皇后

    代码:

     1 #include<iostream>
     2 #include<cstring>
     3 using namespace std;
     4 #define Max 1010
     5 
     6 int cnt = 0;
     7 int n,k;
     8 
     9 char map[Max][Max];
    10 int vis[Max];
    11 
    12 
    13 void dfs(int row,int num){
    14     if(row >= n && num != 0)
    15         return;
    16     if(num > n - row)
    17         return ;
    18     if (num == 0 ){
    19         cnt++;
    20         return;
    21     }
    22     for(int i = 0 ; i < n ; i++){
    23         if(map[row][i] == '.')
    24             continue;
    25         if(vis[i])
    26             continue;
    27         vis[i] = 1;
    28         dfs(row+1,num-1);
    29         vis[i] = 0;
    30     }
    31     dfs(row+1,num);
    32 }
    33 int main(){
    34 
    35     while(cin>>n>>k){
    36         if(n == -1 && k == -1)
    37             break; 
    38         for(int i = 0 ; i < n ; i++){
    39             for(int j = 0; j < n ; j++){
    40                 cin>>map[i][j];
    41             }
    42         }        
    43         memset(vis,0,sizeof(vis));
    44         dfs(0,k);
    45         cout<<cnt<<endl;
    46         cnt = 0;
    47     }
    48 
    49     
    50     return 0;
    51 } 
  • 相关阅读:
    第十次作业
    java第九次作业
    优秀的计算机编程类博客 和 文章
    SQLAlchemy使用总结
    Go Web
    beego
    项目注意事项
    爬虫
    Linux笔记
    计算机英语
  • 原文地址:https://www.cnblogs.com/Asumi/p/9683966.html
Copyright © 2011-2022 走看看