poj1321 棋盘(dfs)

简介:   #include #include using namespace std; int n,k,bb[8]={0},sum=0; char aa[8][8]; void dfs(int a,int b) { if(b>=n) { if(...

 

 

#include<iostream>
#include<cstring>
using namespace std;
int n,k,bb[8]={0},sum=0;
char aa[8][8];
void dfs(int a,int b)
{
    if(b>=n)
    {
        if(a==k)
            sum++;
        return;
    }
    for(int i=0;i<n;i++)
    {
        if(!bb[i]&&aa[b][i]=='#')
        {
            bb[i]=1;
            dfs(a+1,b+1);
            bb[i]=0;
        }

    }
    dfs(a,b+1);
}
int main()
{
    while(cin>>n>>k)
    { int q=0;
    sum=0;
       memset(bb,0,sizeof(bb));
        if(n==-1||k==-1)break;
       for(int i=0;i<n;i++)
            for(int j=0;j<n;j++)

                cin>>aa[i][j];

            dfs(0,0);
            cout<<sum<<endl;
            }

    return 0;
}

 

相关文章
F-POJ-3414 Pots
POJ-3414 Time Limit:1000 ms Memory Limit:65536 K Description You are given two po...
1012 0
poj 2299 求逆序数
http://poj.org/problem?id=2299 #include using namespace std; int aa[500010],bb[500010]; long long s=0; void merge(int l,int m,int r) { ...
820 0
|
人工智能 BI
|
测试技术
poj-1218 THE DRUNK JAILER 喝醉的狱卒
自己去看看原题; 题目大意: 就是一个狱卒喝醉了,他第一趟吧所有的监狱都带开,第二趟把能把二整除的监狱关闭,第三趟操作能把三整除的监狱; 求最后能逃跑的罪犯数 输入第一个数是代表 测试数据组数 每个数据代表狱卒来回的次数 当作开关问题即可 #include using names...
1031 0
POJ 2262 Goldbach&#39;s Conjecture
Problem Description In 1742, Christian Goldbach, a German amateur mathematician, sent a letter to Leonhard Euler in which he made the foll...
1029 0