POJ 1321 棋盘问题(简单搜索)
来源:互联网 发布:90后 网络行为 编辑:程序博客网 时间:2024/06/05 18:13
题目:http://poj.org/problem?id=1321
题目大意:给你一个N*N矩阵(N<=8),其中 # 是可以放棋子的,棋子都是一样,每行每列都最多只能放一个棋子,现在有k个棋子(k<=n),问你有几种可行方案。
解题思路:简单搜索。可以按行进行深搜,然后标记列,到了一种方案就++。
代码如下:
#include<cstdio>#include<cstring>#include<queue>#include<algorithm>using namespace std;int n,k;int ans;char str[11][11];int row[11];void dfs(int x,int used){ if(used == k) { ans++; return ; } if(n-x < k-used) return ; for(int i = x+1;i < n;i++) { for(int j = 0;j < n;j++) { if(row[j] == 1) continue; if(str[i][j] == '#') { row[j] = 1; dfs(i,used+1); row[j] = 0; } } }}int main(){ while(~scanf("%d%d",&n,&k)) { if(n == -1 && k == -1) break; for(int i = 0;i < n;i++) scanf("%s",str[i]); memset(row,0,sizeof(row)); ans = 0; dfs(-1,0); printf("%d\n",ans); } return 0;}
0 0
- POJ 1321 棋盘问题(简单搜索)
- poj 1321 棋盘问题(简单搜索)
- poj 1321棋盘问题(简单搜索)
- POJ 1321-棋盘问题 简单搜索DFS
- POJ 1321【棋盘问题】 简单搜索
- POJ 1321-棋盘问题 简单搜索DFS
- POJ 1321-棋盘问题【简单搜索】
- POJ 1321棋盘问题(简单搜索)
- POJ 1321-棋盘问题-简单搜索DFS
- POJ 1321 棋盘问题 简单搜索
- POJ 1321棋盘问题(简单搜索dfs回溯)
- POJ-1321 棋盘问题 解题报告(搜索) 棋盘问题
- Poj 1321 棋盘问题(搜索)
- POJ 1321 棋盘问题(搜索)
- POJ 1321 棋盘问题(搜索)
- poj 1321棋盘问题(搜索)
- POJ 1321 棋盘问题(搜索)
- POJ 1321 棋盘问题 搜索
- 字符串过滤
- iBATIS In Action:使用高级查询技术(一)
- jquery Event target currentTarget区别
- H.264 软/硬编码器 画质量化分析评测
- 用js文件创建一个带参数的view client的快捷方式(类似的bat形式也可模仿实现),并实现自动登录
- POJ 1321 棋盘问题(简单搜索)
- 解决用户退出登录不会自动跳转到登录页面的问题
- bzoj1193: [HNOI2006]马步距离
- 关于java对象复制(clone)
- iOS 16进制转UIColor
- iOS绘图教程
- Java温习(基础语法一)
- leedcode做题总结,题目Pascal's Triangle I/II-------2012/10/28
- 当程序到后台后,继续完成Long-Running Task 任务