棋盘问题

时间限制(普通/Java):1000MS/3000MS     运行内存限制:65536KByte
总提交: 20            测试通过: 7
http://acm.tzc.edu.cn/acmhome/problemdetail.do?&method=showdetail&id=2922

描述

在一个给定形状的棋盘(形状可能是不规则的)上面摆放棋子,棋子没有区别。要求摆放时任意的两个棋子不能放在棋盘中的同一行或者同一列,请编程求解对于给定形状和大小的棋盘,摆放k个棋子的所有可行的摆放方案C。

输入

输入含有多组测试数据。
每组数据的第一行是两个正整数,n k,用一个空格隔开,表示了将在一个n*n的矩阵内描述棋盘,以及摆放棋子的数目。 n <= 8 , k <= n
当为-1 -1时表示输入结束。
随后的n行描述了棋盘的形状:每行有n个字符,其中 # 表示棋盘区域, . 表示空白区域(数据保证不出现多余的空白行或者空白列)。

输出

对于每一组数据,给出一行输出,输出摆放的方案数目C (数据保证C<2^31)。

样例输入

2 1
#.
.#
4 4
...#
..#.
.#..
#...
-1 -1

样例输出

2
1

不多说自己看代码吧,它是搜索时可以不连续的。与迷宫啊搜索不一样哦。
代码:
#include<stdio.h>
#include<string.h>
#include<stdlib.h>
int t,r[10],c[10],n;
char s[10][10];
void dfs(int x,int k)
{
if(k==0){t++;return ;}
for(int i=x+1;i<=n;i++)
{
for(int j=1;j<=n;j++)
{
if(s[i][j]=='#'&&r[i]&&c[j])
{
r[i]=0;c[j]=0;
dfs(i,k-1);
r[i]=1;c[j]=1;
}
}
}
}
int main()
{
int i,m;
while(scanf("%d%d",&n,&m),n!=-1&&m!=-1)
{
t=0;
if(n==0||m==0){printf("0/n");continue;}
memset(r,1,sizeof(r));
memset(c,1,sizeof(c));
for(i=1;i<=n;i++)
{
scanf("%s",&s[i][1]);
//printf("%s",&s[i][1]);
}
dfs(0,m);
printf("%d/n",t);
}
return 0;
}  

tzc 2922 棋盘问题相关推荐

  1. LeetCode简单题之判断国际象棋棋盘中一个格子的颜色

    题目 给你一个坐标 coordinates ,它是一个字符串,表示国际象棋棋盘中一个格子的坐标.下图是国际象棋棋盘示意图. 如果所给格子的颜色是白色,请你返回 true,如果是黑色,请返回 false ...

  2. luogu P1549 棋盘问题(2) 题解

    luogu P1549 棋盘问题(2) 题解 题目描述 在\(N * N\)的棋盘上\((1≤N≤10)\),填入\(1,2,-,N^2\)共\(N^2\)个数,使得任意两个相邻的数之和为素数. 例如 ...

  3. 【BZOJ-30391057】玉蟾宫棋盘制作 悬线法

    3039: 玉蟾宫 Time Limit: 2 Sec  Memory Limit: 128 MB Submit: 753  Solved: 444 [Submit][Status][Discuss] ...

  4. python棋盘放米循环结构_Python递归法计算棋盘上所有路径总奖品最大值(京东2016编程题)...

    问题描述:假设有一个6x6的棋盘,每个格子里有一个奖品(每个奖品的价值在100到1000之间),现在要求从左上角开始到右下角结束,每次只能往右或往下走一个格子,所经过的格子里的奖品归自己所有.问最多能 ...

  5. 【Codeforces】1080C Masha and two friends (棋盘染色)

    http://codeforces.com/problemset/problem/1080/C 给定一个棋盘,(1,1)的位置是白色,观察可以知道,如果横纵坐标之和是偶数,那么是白色,奇数的话就是黑色 ...

  6. A - 棋盘问题 POJ - 1321(dfs)

    A - 棋盘问题 POJ - 1321 dfs 复杂度计算: dfs共进行a步,每步需要循环n次,复杂度为 a^n次方 首先是暴力 an*n,果然炸了 #include<cstdio> # ...

  7. 编程中的一个易错点:判断某个点是否超出棋盘边界

    给定一个r行c列的棋盘,给定一个点x,y,要求判断点(x,y)处是否可以放置棋子. 判断越界时不能转化成一维判断越界,判断越界必须在二维空间中进行. r, c = 3, 3 a = [0] * (r ...

  8. 作弊阴影罩棋盘,人工智能咋避嫌?

    来源:奇怪的科学家 为什么要写这样一句话,就是为了避免剧情和现实生活中发生的事情万一差不多,会侵犯到别人的隐私,发生侵权,给双方带来不必要的麻烦. 这位名为刘超的棋手把手机插在上衣兜里,摄像头正对棋盘 ...

  9. POJ 1321 棋盘问题【DFS】

    棋盘问题 Time Limit: 1000MS   Memory Limit: 10000K Total Submissions: 35493   Accepted: 17485 Descriptio ...

最新文章

  1. 仿iphone日历插件(beta)
  2. Python自动化开发 - 字符编码、文件和集合
  3. 两块 硬盘 主从盘跳线详解
  4. python实现线性回归预测_机器学习实战笔记(Python实现)-08-线性回归
  5. Bootstrap4+MySQL前后端综合实训-Day09-PM【实训汇报、在同一校园网下,查看别人的项目——ipconfig】
  6. layui表单mysql_layui表单验证支持select下拉框的一种方法
  7. 没有光驱怎样从硬盘上安装Windows XP系统
  8. Power BI连接MySQL 提示错误......未能加载文件或程序集......或它的某一个依赖项
  9. 使用Harbor配置Kubernetes私有镜像仓库
  10. clienttop,clientleft,scrolltop,scrollleft,offsettop,offsetleft全解析
  11. MySQL学习笔记15:触发器
  12. 解码器输出PSNR为0表示什么
  13. 基于UDP的网络对战五子棋
  14. iphone显示不了wifi已连接服务器,苹果手机显示已经连接wifi但是不能上网如何解决...
  15. two sample ttest paired ttst
  16. android 2k屏分辨率是多少,手机2k屏幕是什么意思 2k屏幕几大问题
  17. css3实现3d图片旋转效果
  18. 安科瑞DDS/DTS/DTZ系列计量表,具有体积小巧、精度高、可靠性好、安装方便等优点
  19. Java实战之继承与多态
  20. 【Hive】报错Container is running beyond physical memory limits.4.0 GB of 4 GB physical memory used

热门文章

  1. Matlab放大图片并补色
  2. mysql在数据库中创建工作表时,总是报语法错误。(表名字符号有问题)
  3. 名帖294 张瑞图 行书《前赤壁赋》
  4. 极品飞车13,弹出“内存不能read”的解决办法
  5. 北大青鸟重庆大学城校区:初中生学it容易吗?
  6. excel创建下拉列表多选_如何在Excel中创建下拉列表?
  7. 竞赛入门-数据探索性分析(EDA)
  8. 梦之翼团队项目(音乐播放器)
  9. 新零售来袭,企业如何利用物联网卡转型升级?
  10. 技术革新大趋势!一文带你读懂大数据分布式存储