http://poj.org/problem?id=1321

思路:按行搜索,回溯时还原棋盘。

 #include <stdio.h>
#include <string.h>
int map[][],vis[];
int ans,n,k;
void dfs(int row,int cnt)
{ if (k==cnt)
{
ans++;
return ;
}
if (row > n)
return ;
for (int i = ; i <= n; i ++)
{
if (map[row][i] && !vis[i])
{
vis[i] = ;
dfs(row+,cnt+);
vis[i] = ;
}
}
dfs(row+,cnt);//处理k<n的情况
return ;
}
int main()
{
while(~scanf("%d%d%*c",&n,&k))
{
if (n==-&&k==-)
break;
char ch;
ans = ;
memset(map,,sizeof(map));
memset(vis,,sizeof(vis));
for (int i = ; i <= n; i ++)
{
for (int j = ; j <= n; j ++)
{
scanf("%c",&ch);
if (ch=='#')
map[i][j] = ;
}
getchar();
}
dfs(,);
printf("%d\n",ans);
}
return ;
}

最新文章

  1. Java JDK配置环境变量
  2. 记一次zookeeper集群搭建错误的排除
  3. 【BZOJ 3295】动态逆序对 - 分块+树状数组
  4. Codeforces Round #258 (Div. 2)(A,B,C,D)
  5. Python基础 初识Python
  6. java基本数据类型传递与引用传递区别
  7. dc的博客翻修计划启动
  8. 【easy】110. Balanced Binary Tree判断二叉树是否平衡
  9. String.split()方法
  10. linux 常用命令集合-命令导图
  11. nginx出现 “414 request-uri too large”
  12. sqlserver导入导出数据库结构及创建用户分配权限
  13. Tomcat 基础
  14. JS获取当前网页大小以及屏幕分辨率等
  15. 数组之reduce()和reduceRight()
  16. 省队集训 Day3 陈姚班
  17. BlockTransferService 实现
  18. netty结合websocket使用
  19. IDEA 打包jar
  20. MySQL基础 (麦子学员 php 第二阶段)

热门文章

  1. Ubuntu用户自定义脚本开机启动
  2. python os os.path模块学习笔记
  3. Eclipse安装egit Github教程
  4. plsql developer连接oracle数据库
  5. linux强制踢出已登录的用户及本地用户
  6. ESX/ESXi 主机的某些存储阵列可能存在读取或写入性能问题 (1002598)
  7. 2977,3110 二叉堆练习1,3——codevs
  8. (C/C++学习)11.随机数组的快速查找
  9. 使用redis和简单token机制校验身份的思路
  10. 02. 爬取get请求的页面数据