棋盘问题-DFS
来源:互联网 发布:淘宝卖家售后常见问题 编辑:程序博客网 时间:2024/06/18 06:00
每组数据的第一行是两个正整数,n k,用一个空格隔开,表示了将在一个n*n的矩阵内描述棋盘,以及摆放棋子的数目。 n <= 8 , k <= n
当为-1 -1时表示输入结束。
随后的n行描述了棋盘的形状:每行有n个字符,其中 # 表示棋盘区域, . 表示空白区域(数据保证不出现多余的空白行或者空白列)。
2 1#..#4 4...#..#..#..#...-1 -1
21
解题思路:这道题类似N皇后问题,不同的是棋盘不规则,但是解决方法一样,刚开始我用的是一维数组来解的,但是错误,因为这样有些地方考虑不到,所以用二维的办法。
解题代码:
#include<iostream>#include<stdio.h>#include<string.h>using namespace std;char ch[10][10];int vis[10];int cnt;int n,m;void DFS(int k,int cur){ if(cur>=m) { cnt++; return; } for(int i=k;i<=n;i++) for(int j=1;j<=n;j++) { if(ch[i][j]=='#'&&vis[j]==0) { vis[j]=1; DFS(i+1,cur+1); vis[j]=0; } } return;}int main(){ while(cin>>n>>m) { if(n==-1||m==-1) break; memset(ch,0,sizeof(ch)); for(int i=1;i<=n;i++) { getchar(); for(int j=1;j<=n;j++) scanf("%c",&ch[i][j]); } memset(vis,0,sizeof(vis)); cnt=0; DFS(1,0); printf("%d\n",cnt); } return 0;}
- poj1321(dfs棋盘问题)
- 棋盘问题 DFS+回溯
- 棋盘问题 DFS
- poj1321 棋盘问题 dfs
- poj1321 棋盘问题(DFS)
- POJ1321 棋盘问题 DFS
- 棋盘问题-DFS
- [dfs] poj1321棋盘问题
- POJ1321 棋盘问题(dfs)
- POJ1321 棋盘问题 DFS
- 棋盘问题(dfs)
- poj1321 棋盘问题 DFS
- 棋盘问题 DFS
- Poj1321 棋盘问题 DFS
- poj1321棋盘问题DFS
- poj1321棋盘问题(dfs)
- (kuangbin DFS)棋盘问题
- POJ 棋盘问题 DFS
- POJ3069-贪心-Saruman's Army
- 数组的valueforkey方法
- HIbernate——事务并发问题及处理(乐观锁悲观锁)
- Spring mvc jsp/html等静态资源/Controller无法使用总结
- 记住事物的控制
- 棋盘问题-DFS
- Spring AOP详解& AspectJ表达式
- va_list、va_start、va_arg、va_end的原理与使用
- 闲谈Tomcat性能优化
- Cannot find module 'babel-plugin-transform-es2015
- C#开发添加后缀名工具之新建项目窗体结构
- matlab 输出显示函数
- 最小割常见模型
- Django——技术文档