Posted on 2009-08-23 19:47
Uriel 閱讀(986)
評論(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;
}
