您的位置:首页 > 其它

*chess

2020-02-17 12:18 393 查看
View Code
 1 /*   easy    */
2 #include <iostream>
3 #include <cstring>
4 using namespace std;
5 int n,m,ans,flag,vis[40];
6 char f[40][40];
7 void solve(int k,int num)
8 {
9 if(num == m)
10 {
11 ans++;
12 return;
13 }
14 if(k>=n) return;
15 for(int i=0;i<n;i++)
16 {
17 if(f[k][i]=='#')
18 {
19 flag=0;
20 for 4000 (int j=0;j<k;j++)
21 {
22 if(vis[j]==i)
23 {
24 flag = 1;
25 break;
26 }
27 }
28 if(!flag)
29 {
30 vis[k]=i;
31 solve(k+1,num+1);
32 vis[k]=-1;
33 }
34 }
35 }
36 solve(k+1,num);
37 return;
38 }
39 int main()
40 {
41 //int n,m;
42 while(cin>>n>>m)
43 {
44 if(n==-1 && m==-1) break;
45 for(int i=0;i<n;i++)
46 cin>>f[i];
47 ans=0;
48 memset(vis,-1,sizeof(vis));
49 solve(0,0);
50 cout<<ans<<endl;
51 }
52 return 0;
53 }

转载于:https://www.cnblogs.com/eth0/archive/2011/05/08/2040508.html

  • 点赞
  • 收藏
  • 分享
  • 文章举报
aimei3954 发布了0 篇原创文章 · 获赞 0 · 访问量 258 私信 关注
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: