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

Input

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

Output

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

Sample Input

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

Sample Output

2
1
#include<iostream>
#include<stdio.h>
#include<memory.h>
using namespace std;
int n, m;
char a[10][10];
bool vis[10];
int ans;
int step;
void DFS(int k) {if (step == m) {ans++;return;}if (k>n)return;//超出边界 for (int i = 0; i<n; i++) {if (!vis[i] && a[k][i] == '#') {vis[i] = true;step++;DFS(k + 1);vis[i] = false;step--;}}DFS(k + 1);//某行全都是空白的情况
}
int main() {while (scanf("%d %d",&n,&m)!=EOF) {//n是图形的大小,m是棋子的数量 if (n == -1)break;ans = 0;step = 0;memset(vis, false, sizeof(vis));for (int i = 0; i<n; i++) {getchar();for (int j = 0; j<n; j++) {scanf("%c", &a[i][j]);}}DFS(0);cout << ans << endl;}
}

转载于:https://www.cnblogs.com/CuteAbacus/p/9492098.html

棋盘问题 POJ - 1321相关推荐

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

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

  2. POJ 1321 棋盘问题(回溯)

    文章目录 1. 题目 1.1 题目链接 1.2 题目大意 1.3 解题思路 2. 代码 2.1 Accepted 代码 1. 题目 1.1 题目链接 http://poj.org/problem?id ...

  3. poj 1321 棋盘问题(dfs)

    题目:http://poj.org/problem?id=1321 没什么难度,比较水... View Code 1 #include <iostream> 2 #include<c ...

  4. POJ 1321 棋盘问题【DFS】

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

  5. POJ 1321 棋盘问题 搜索

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

  6. POJ 1321 棋盘问题 题解

    棋盘问题 Time Limit: 1000MS Memory Limit: 10000K Total Submissions: 70224 Accepted: 33254 Description 在一 ...

  7. POJ - 1321 棋盘问题

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

  8. 深度优先搜索----poj 1321棋盘问题

    题目描述 棋盘问题 Time Limit: 1000MS   Memory Limit: 10000K Total Submissions: 63237   Accepted: 30234 Descr ...

  9. 棋盘问题 ( POJ -1321 )(简单DFS)

    转载请注明出处:https://blog.csdn.net/Mercury_Lc/article/details/82684942   作者:Mercury_Lc 题目链接 题解:dfs入门,就是每个 ...

最新文章

  1. 幼儿园带括号算式口诀_初中数学必会的26个知识点口诀
  2. BZOJ2002 [HNOI2010] 弹飞绵羊
  3. Kafka入门之分组的理解
  4. julia与python对比_有人说Julia比Python好,还给出了5个理由
  5. 如何让自定义Dialog上下居中
  6. 台湾-李宏毅教授的深度学习视频教程
  7. java 二进制 base64编码_java自定义实现base64编码转换
  8. Coloring Tree
  9. FS\OFS\RS\ORS的使用
  10. 开机显示被调用的对象已与其客户端断开连接,解决方案亲测有效
  11. 学计算机学体育生闺女,适合女孩学的体育项目
  12. Win10开启ssh和scp
  13. WeWork举步维艰,它的竞争对手们活的怎么样?
  14. python蒙特卡洛算法模拟赌博模型
  15. 【Scala-spark.mlib】分布式矩阵——分布式计算的基石与利器
  16. 我的Android说
  17. 导航守卫之组件内守卫及后置钩子
  18. java excel 透视_Java在Excel中创建透视表方法解析
  19. CTF竞赛入门(三)密码学安全
  20. 【转载】使用python进行ABAQUS的二次开发的简要说明(by Young 2017.06.27)

热门文章

  1. 使用 jQuery Mobile 与 HTML5 开发 Web App —— jQuery Mobile 默认配置与事件基础
  2. .NET设计模式(1): 简单工厂模式
  3. Java Spring连接Tibco Queue 总结
  4. leetcode - 486. 预测赢家
  5. 去哪儿-17-detail-header
  6. STM32 - 定时器的设定 - 基础 01 - Timer Base - Prescaler description - Upcounting mode
  7. 遇到oracle错误1012,跟着感觉走,解决安装RAC过程中OCR完整性错误,待深入剖析...
  8. c语言用链表写管理系统程序,c语言课程设计职工信息管理系统单链表实现程序源代码-20210401015126.docx-原创力文档...
  9. mysql update 多个字段_MySQL数据库基础
  10. mysql 5.6 安装 中文_ubuntu 下mysql 5.6安装、删除和配置中文乱码问题