Uriel's Corner

Research Associate @ Harvard University / Research Interests: Computer Vision, Biomedical Image Analysis, Machine Learning
posts - 0, comments - 50, trackbacks - 0, articles - 594

POJ 1321 棋盘问题---DFS

Posted on 2009-08-23 19:47 Uriel 阅读(983) 评论(5)  编辑 收藏 引用 所属分类: POJ搜索
纠结了好一会儿。。原来自己连递归的某些东西还不是很透彻。。
基础就不扎实,别说举一反三了
虽然AC了。。但以后还要看
/*Problem: 1321  User: Uriel 
  Memory: 188K  Time: 47MS 
  Language: C++  Result: Accepted
*/

#include
<stdio.h>
#include
<stdlib.h>
#include
<string.h>

int cnt,i,j,n,k,f[12];
char s[12][12]; 

void DFS(int r,int P)
{
    
int j;
    
if(P==0)
    
{
        cnt
++;
        
return;
    }

    
if(r>=n)return;
    
for(j=0;j<n;j++)
    
{
        
if(!f[j] && s[r][j]=='#')
        
{
            f[j]
=1;
//            printf("*%d %d*\n",r,P);
            DFS(r+1,P-1);
            f[j]
=0;
        }

//        printf("*%d %d*\n",r,P);
    }

    printf(
"*%d %d*\n",r,P);
    DFS(r
+1,P);
}


int main()
{
    
while(1)
    
{
        scanf(
"%d %d",&n,&k);
        
if(n==-1 && k==-1)break;
        
for(i=0;i<n;i++)
        
{
            getchar();
            
for(j=0;j<n;j++)
            
{
                scanf(
"%c",&s[i][j]);
            }

        }

        memset(f,
0,sizeof(f));
        cnt
=0;
        DFS(
0,k);
        printf(
"%d\n",cnt);   
    }

    system(
"PAUSE");
    
return 0;
}

Feedback

# re: POJ 1321 棋盘问题---DFS  回复  更多评论   

2010-03-10 20:53 by 地方
看了你的,我终于知道DFS怎么用了!!!

# re: POJ 1321 棋盘问题---DFS  回复  更多评论   

2010-03-10 20:53 by 地方
看了你的!我终于知道DFS怎么用了!!谢le !!

# re: POJ 1321 棋盘问题---DFS  回复  更多评论   

2010-03-12 22:10 by Uriel
@地方 :)

# re: POJ 1321 棋盘问题---DFS[未登录]  回复  更多评论   

2010-07-20 11:15 by 代码疯子
Very Good

# re: POJ 1321 棋盘问题---DFS  回复  更多评论   

2010-11-06 16:33 by 天青色~~
顶~~

只有注册用户登录后才能发表评论。
网站导航: 博客园   IT新闻   BlogJava   知识库   博问   管理