POJ1321 棋盘问题(dfs)
2016-01-25 21:45
381 查看
题目链接
基础题,一行一行的摆下来,从第一行开始,枚举所有情况,摆放好棋子后,该棋子摆放的列就用vis标记,不能再放置棋子
代码如下:
基础题,一行一行的摆下来,从第一行开始,枚举所有情况,摆放好棋子后,该棋子摆放的列就用vis标记,不能再放置棋子
代码如下:
#include <cstdio> #include <cstring> int n, k, ans, sum, vis[10]; char map[10][10]; void dfs(int x) { if(sum == k) { ans++; return; } if(x >= n) return; else { for(int i = 0; i < n; i++) { if(map[x][i] == '#' && vis[i] == 0) { vis[i] = 1; sum++; dfs(x+1); vis[i] = 0, sum--; } } } dfs(x + 1); } int main() { while(scanf("%d%d", &n, &k) && n != -1 && k != -1) { for(int i = 0; i < n; i++) { scanf("%s", map[i]); } memset(vis, 0, sizeof(vis)); sum = 0, ans = 0; dfs(0); printf("%d\n", ans); } return 0; }
相关文章推荐
- SDWedImage
- 编译完py后,pyc 和pyo文件是干嘛的?
- Handling skewed data---Error metrics for skewed(偏斜的) classes(precision&recall)
- 数据结构实现之Table(符号表,内部存储key-value对)
- 如何打造一个让人愉快的框架
- apache与redmine整合-使用passenger
- Maven Reference
- [LeetCode] Remove Element 分析
- Android自定义ListView的Item无法响应OnItemClick的解决办法(转)
- netstat
- Smack Message属性扩展---添加自定义元素(标签)
- CF 617E 莫队
- 前端笔记六,级联样式单与CSS选择器(一)
- SpringAop编程
- 【C++探索之旅】第一部分第七课:函数效应,分而治之
- 网络加载糗事百科json数据实践
- wavedec2函数详解
- <LeetCode OJ> 125. Valid Palindrome
- 【C++探索之旅】第一部分第七课:函数效应,分而治之
- 韩顺平 javascript教学视频_学习笔记13_类和对象细节_创建对象的几种方式_js对象内存分析