poj 1321 深搜
来源:互联网 发布:大连外国语大学知乎 编辑:程序博客网 时间:2024/05/20 17:08
直接思路:就没有题意了.深搜加回溯.学会了一个很搞笑的东西,dev C++中count居然是内置类型,太坑了就这一点搞了很长时间,差点没把电脑砸了;#include <iostream>#include <cstdio>#include <cstring>using namespace std;#define N 10char map[N][N]; int col[N];int n, m, row[N];int _count;void dfs(int r, int k){ int i; if(k == m){ _count++; return; } if(r > n) return; for(i = 1; i <= n; i++){ if(!col[i] && map[r][i] == '#'){ col[i] = 1; dfs(r + 1, k + 1); col[i] = 0; } } dfs(r + 1, k); return ;} int main() { while(cin >> n >> m){ if(n == -1 && m == -1)break; _count = 0; int xi, yi, sum; xi = yi = sum = 0; for(int i = 1; i <= n; i++) for(int j = 1; j <= n; j++){ scanf(" %c", map[i] + j); if(map[i][j] == '#' && i != xi && j != yi){sum ++; xi = i; yi = j;} }if(sum < m){ printf("%d\n", 0); continue;}//剪枝 memset(col, 0, sizeof(col)); dfs(1, 0); printf("%d\n", _count); } return 0;}