首页 > 其他 > 详细

poj1321 棋盘问题 dfs

时间:2014-03-31 10:00:47      阅读:553      评论:0      收藏:0      [点我收藏+]

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

poj少有的中文题目,很嗨皮

直接上代码:

bubuko.com,布布扣
 1 ///2014.3.30
 2 ///poj1321
 3 
 4 #include <iostream>
 5 #include <cstdio>
 6 using namespace std;
 7 
 8 int N,K;
 9 bool board[10][10];
10 bool used[10];
11 int C;
12 
13 void init(){
14     char temp;
15     for(int i=1 ; i<=N ; i++){
16         used[i] = false;
17         for(int j=1 ; j<=N ; j++){
18             cin>>temp;
19             if( temp==# )
20                 board[i][j] = true;
21             else
22                 board[i][j] = false;
23         }
24     }
25     C = 0;
26 }
27 
28 void dfs(int r,int num){
29     if( num==K ){
30         C++;
31         return;
32     }
33     if( r>N )
34         return;
35     for(int i=1 ; i<=N ; i++){
36         if( board[r][i] && !used[i] ){
37             used[i] = true;
38             dfs(r+1,num+1);
39             used[i] = false;
40         }
41     }
42     dfs(r+1,num);
43 }
44 
45 int main()
46 {
47     // freopen("in","r",stdin);
48     // freopen("out","w",stdout);
49 
50     while( cin>>N>>K && N!=-1 && K!=-1 ){
51         init();
52         dfs(1,0);
53         cout<<C<<endl;
54     }
55     return 0;
56 }
bubuko.com,布布扣

poj1321 棋盘问题 dfs,布布扣,bubuko.com

poj1321 棋盘问题 dfs

原文:http://www.cnblogs.com/basement-boy/p/3634737.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!