poj 1321

来源:互联网 发布:excel相同数据自动合并 编辑:程序博客网 时间:2024/06/10 03:13

和八皇后问题差不多,但8皇后是n=k;

而这一个n<=k;

要多考虑一种情况;

代码如下;

#include<cstdio>#include<iostream>#include<cstring>#include<algorithm>using namespace std;char a[10][10];int total,m,n,k;int visit[10];void dfs(int cur){if(m==k){total++;return ;}if(cur>=n) {return ;}for(int i=0;i<n;i++){if(visit[i]==0&&a[cur][i]=='#'){visit[i]=1;m++;dfs(cur+1);visit[i]=0;m--;}}dfs(cur+1);}int main(){while(~scanf("%d%d",&n,&k)){if(n==-1&&k==-1) break;for(int i=0;i<n;i++)scanf("%s",a[i]);total=0; m=0;memset(visit,0,sizeof(visit));dfs(0);printf("%d\n",total);} } 


原创粉丝点击