POJ - 1321 dfs [kuangbin带你飞]专题一
2024-09-20 00:23:43
枚举行和列即可,当前已经放下cnt个棋子,当前已经搜索到第r行,如果 n - r + cnt < k 直接退出,因为后面无法放下剩下的棋子。
AC代码
#include<cstdio> #include<cstring> const int maxn = 10; char G[maxn][maxn]; int vis[maxn], n, k; int ans; void dfs(int x, int cnt){ if(cnt == k){ ans++; return; } for(int i = x; i < n; ++i){ if(n - x + cnt < k) return; for(int j = 0; j < n; ++j){ if(vis[j] || G[i][j] == '.') continue; vis[j] = 1; dfs(i + 1, cnt + 1); vis[j] = 0; } } } int main(){ while(scanf("%d%d", &n, &k) == 2 ){ if(n == -1 && k == -1) break; for(int i = 0; i < n; ++i){ scanf("%s", G[i]); } memset(vis, 0, sizeof(vis)); ans = 0; dfs(0, 0); printf("%d\n", ans); } return 0; }
如有不当之处欢迎指出!
最新文章
- golang笔记——并发
- python:字符串转换成字节的三种方式
- iOS-性能优化1
- JS URL传递中文参数时出现乱码的处理
- centos6.5 安装python2.7.5
- asp.net 弹出式日历控件 选择日期 Calendar控件
- xmemcached user guide --存档
- JavaScript细节成败
- Java 的字节流文件读取(一)
- luogu1608 路径统计 (spfa)
- 2018-2019-2 《网络对抗技术》Exp3 免杀原理与实践 20165211
- Forward团队-爬虫豆瓣top250项目-代码设计规范
- 1px的border
- Linux基础※※※※连接XShell到Ubuntu 14.04 LTS
- python装饰器(docorator)详解
- python 编码方式大全 fr = open(filename_r,encoding=&#39;cp852&#39;)
- 程序控制结构及for循环、foreach循环、迭代器
- Java设计模式—享元模式
- 关于Simplicity Studio使用math.h编译出错
- GraphSAGE 代码解析(二) - layers.py