#include<iostream>
using namespace std;
long int n,k,count;
char map[10][10];
bool biao[100];
void DFS(int row,int num)
{
int i;
if(num==k)
{
count++;
return;
}
if(row>=n)
return;
for(i=0;i<n;i++)
{
if(map[row][i]==1&&!biao[i])
{
biao[i]=true;
DFS(row+1,num+1);
biao[i]=false;
}
}
DFS(row+1,num);
}
int main()
{
int i,j;
while(cin>>n>>k&&n!=-1&&k!=-1)
{
count=0;
memset(biao,false,100);
for(i=0;i<n;i++)
for(j=0;j<n;j++)
cin>>map[i][j];
for(i=0;i<n;i++)
for(j=0;j<n;j++)
{
if(map[i][j]=='#')
map[i][j]=1;
else
map[i][j]=0;
}
DFS(0,0);
cout<<count<<endl;
}
}
poj 1321
最新推荐文章于 2022-06-25 16:00:03 发布