dfsPOJ1321 棋盘问题

Posted 快扶哀家去刷题

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了dfsPOJ1321 棋盘问题相关的知识,希望对你有一定的参考价值。

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

题解: http://www.tuicool.com/articles/nE7BNj

 

 1 #include<cstdio>
 2 #include<cstring>
 3 char mat[15][15];
 4 bool col[15];
 5 int n, k, ans;
 6 
 7 void dfs(int line, int cnt){
 8     if(cnt == k){
 9         ans++;
10         return;
11     }
12     while(line < n){
13         for(int i = 0; i < n; i++){
14             if(mat[line][i] == # && col[i] == false){
15                 col[i] = true;
16                 dfs(line+1, cnt+1);
17                 col[i] = false;
18             }
19         }
20         line++;
21     }
22 }
23 
24 int main(){
25     while(~scanf("%d%d", &n, &k)){
26         if(n == -1 && k == -1) break;
27         memset(mat, 0, sizeof(mat));
28         memset(col, 0, sizeof(col));
29         for(int i = 0; i < n; i++) scanf("%s", mat[i]);
30         ans = 0;
31         dfs(0, 0);
32         printf("%d\n", ans);
33     }
34 
35     return 0;
36 }

 

以上是关于dfsPOJ1321 棋盘问题的主要内容,如果未能解决你的问题,请参考以下文章

1321:棋盘问题(深度优先搜索进阶)

棋盘问题——POJ1321

POJ 1321 棋盘问题

POJ 1321 棋盘问题

POJ1321——棋盘问题

POJ 1321:棋盘问题