标签:des blog http io ar os sp for strong
#include<iostream>
#include<cstdio>
#include<cstring>
#include<cstdlib>
#include<string>
#include<cmath>
#include<algorithm>
#include<queue>
#include<vector>
#include<set>
using namespace std;
int n,k,ans;
char s[10][10];
bool vis[10][10],cal[10];
void dfs(int r,int sum)
{
if(sum==k)
{
ans++;
return ;
}
if(r>n)
return ;
for(int j=1;j<=n;j++)
if(vis[r][j]&&!cal[j])
{
cal[j]=1;
dfs(r+1,sum+1);
cal[j]=0;
}
dfs(r+1,sum);//这里注意,k<n时,跳过r行,直接搜r+1行。
return ;
}
int main()
{
while(scanf("%d%d",&n,&k)!=EOF)
{
ans=0;
memset(vis,0,sizeof(vis));
memset(cal,0,sizeof(cal));
if(n==-1&&k==-1)
break;
for(int i=1;i<=n;i++)
{
getchar();
for(int j=1;j<=n;j++)
{
scanf("%c",&s[i][j]);
if(s[i][j]==‘#‘)
vis[i][j]=1;
}
}
dfs(1,0);
printf("%d\n",ans);
}
return 0;
}
标签:des blog http io ar os sp for strong
原文地址:http://www.cnblogs.com/a972290869/p/4109288.html