POJ 1321 深搜dfs

Posted

tags:

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

思路其实挺简单的,为什么我想不到呢!!!

原因分析:(1)题目还是做少了

     (2)做题目的时候在放音乐

     (3)最近脑袋都不愿意想思路总是想一些无用的

改进:(1)以后做题目坚决不开音乐,QQ直接挂隐身

   (2)想题目的时候一定要认真,开启完全状态

   (3)对自己再认真一点,加油

 1 #include<cstdio>
 2 #include<cstring>
 3 const int qq=10;
 4 char map[qq][qq];
 5 int vis[qq];
 6 int n,k,ans;
 7 void dfs(int colu,int num)
 8 {
 9     if(num==k){
10         ++ans;
11         return;
12     }
13     for(int j,i=colu;i<n;++i)            
14         for(j=0;j<n;++j)
15             if(map[i][j]==#&&!vis[j]){
16                 vis[j]=1;                //对列进行标记 
17                 dfs(i+1,num+1);            //因为要求不在一行,所以对行进行枚举 
18                 vis[j]=0;
19             }
20     return;
21 }
22 int main()
23 {
24     while(~scanf("%d %d%*c",&n,&k)&&(n!=-1))
25     {    
26         memset(vis,0,sizeof(vis));
27         for(int i=0;i<n;++i)
28             gets(map[i]);
29         ans=0;
30         dfs(0,0);
31         printf("%d\n",ans);
32     }
33 }

 

以上是关于POJ 1321 深搜dfs的主要内容,如果未能解决你的问题,请参考以下文章

搜索算法:深度优先搜索(DFS)

POJ 1321(DP初步_I题)解题报告

POJ 2488 深搜dfs

POJ 1321

POJ 2386 DFS深搜入门

poj1321 棋盘问题(DFS)