简单深搜---poj1321

惭愧,计划学习图论好久了。到现在还没搞定最基本的深搜,广搜。         不行啊,要加快进度了!!!  吼吼

深搜广搜,图的连通性,最短路径,网络流............啊~好多啊

代码:

#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;
   DFS(r+1,p-1);
   f[j]=0;
  }
 }
 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);
 }
 return 0;
}

 

posted on 2012-02-27 19:24  hrbust_09zhangyabin  阅读(133)  评论(0编辑  收藏  举报