poj 1321 棋盘问题(dfs)

来源:互联网 发布:如何设置java环境变量 编辑:程序博客网 时间:2024/05/22 00:09

做动态规划做的伤心了,找点水题找自信。

cur表示当前搜索到哪一行了,book数组用于标记列

#include <iostream>#include <cstring>using namespace std;int n,k,res;int book[10];char Map[10][10];void DFS(int cur, int num){    if(num == k)    {        ++res;        return;    }    for(int i = cur; i < n; ++i)    {        for(int j = 0; j < n; ++j)        {            if(Map[i][j] == '#' && book[j] == 0)            {                book[j] = 1;                DFS(i+1,num+1);                book[j] = 0;            }        }    }}int main(){    while(cin >> n >> k && n != -1 && k != -1)    {        res = 0;        memset(book, 0, sizeof(book));        for(int i = 0; i < n; ++i)            for(int j = 0; j < n; ++j)                cin >> Map[i][j];        DFS(0,0);        cout << res << endl;    }    return 0;}
0 0
原创粉丝点击