num--忘了写。。
#include<bits/stdc++.h>
using namespace std;
int m[10][10],vis[10];
int n,k;
int cas=0;
int num;
void dfs(int c)
{
if(num==k)
{
cas++;
return ;
}
else if(c==n)
return ;
else
{
for(int i=0;i<n;i++)
{
if(m[c][i]==1&&!vis[i])
{
vis[i]=1;
num++;
dfs(c+1);
vis[i]=0;
num--;
}
}
dfs(c+1);
}
}
int main()
{
while(cin>>n>>k)
{
char ch;
num=0;
memset(vis,0,sizeof(vis));
cas=0;
if(n==-1&&k==-1)
break;
for(int i=0; i<n; i++)
{
for(int j=0; j<n; j++)
{
cin>>ch;
if(ch=='#')
m[i][j]=1;
else
m[i][j]=0;
}
}
dfs(0);
cout<<cas<<endl;
}
}