POJ-1321-棋盘问题

来源:互联网 发布:hm在淘宝没有旗舰店吗 编辑:程序博客网 时间:2024/05/18 01:58

一个比较简单的DFS题,搜索下就可以了。注意其中的细节问题。

代码:

#include<cstdio>#include<cstring>#include<iostream>#define MAX 9using namespace std;char map[MAX][MAX];int ans,n,k,count;bool vis[MAX];void DFS(int index){    if(index>=n)return;    for(int i=0;i<n;i++)    {if(map[index][i]=='#'&&!vis[i]){    vis[i]=1;    count++;    if(count==k)ans++;    elseDFS(index+1);    count--;    vis[i]=0;}    }    DFS(index+1);}int main(){    while(scanf("%d%d",&n,&k)&&n!=-1)    {ans=0;memset(vis,0,sizeof(vis));for(int i=0;i<n;i++)   scanf("%s",&map[i]);DFS(0);printf("%d\n",ans);    }    return 0;}