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;}
原创粉丝点击