枚举行和列即可,当前已经放下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;
}

如有不当之处欢迎指出!

最新文章

  1. golang笔记——并发
  2. python:字符串转换成字节的三种方式
  3. iOS-性能优化1
  4. JS URL传递中文参数时出现乱码的处理
  5. centos6.5 安装python2.7.5
  6. asp.net 弹出式日历控件 选择日期 Calendar控件
  7. xmemcached user guide --存档
  8. JavaScript细节成败
  9. Java 的字节流文件读取(一)
  10. luogu1608 路径统计 (spfa)
  11. 2018-2019-2 《网络对抗技术》Exp3 免杀原理与实践 20165211
  12. Forward团队-爬虫豆瓣top250项目-代码设计规范
  13. 1px的border
  14. Linux基础※※※※连接XShell到Ubuntu 14.04 LTS
  15. python装饰器(docorator)详解
  16. python 编码方式大全 fr = open(filename_r,encoding=&#39;cp852&#39;)
  17. 程序控制结构及for循环、foreach循环、迭代器
  18. Java设计模式—享元模式
  19. 关于Simplicity Studio使用math.h编译出错
  20. GraphSAGE 代码解析(二) - layers.py

热门文章

  1. python 中 reversed()函数
  2. 远程服务调用(RMI)
  3. JAVA中利用反射机制进行对象和Map相互转换的方法
  4. slick对超过22个属性的表进行映射的两种办法
  5. sparse_softmax_cross_entropy_with_logits
  6. Java中常见的排序方法
  7. 梅安森元图地图开放平台、专业GIS地图平台
  8. python抢小米6自动化脚本
  9. Spring整合JMS(四)——事务管理
  10. CodeChef Little Elephant and Movies [DP 排列]