棋盘问题

在一个给定形状的棋盘(形状可能是不规则的)上面摆放棋子,棋子没有区别。要求摆放时任意的两个棋子不能放在棋盘中的同一行或者同一列,请编程求解对于给定形状和大小的棋盘,摆放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
解题思路:
典型八皇后问题转变,用的是DFS,一行行看,每行进行查询的时候用个数组x[10]记录一下这一列的有没有棋子
#include <iostream>
#include <algorithm>
#include <string>
#include <cstdio>
#include <cstring>
#include <cmath>
using namespace std;
int n,k;
string s[10];
int ans=0;
int y[10];
void dfs(int,int);
int main(int argc, char *argv[])
{while(cin>>n>>k){if(n==-1&&k==-1)break;ans=0;for(int i=0;i<n;i++)cin>>s[i];dfs(0,0);cout<<ans<<endl;}return 0;
}
void dfs(int x,int ki)
{if(ki==k){ans++;return;}if(x==n)return;for(int i=0;i<n;i++){if(s[x][i]=='#'&&y[i]==0){ki++;y[i]=1;dfs(x+1,ki);ki--;y[i]=0;}}dfs(x+1,ki);
}

kuangbin棋盘问题相关推荐

  1. kuangbin带你飞专题合集

    题目列表 [kuangbin带你飞]专题一 简单搜索 [kuangbin带你飞]专题二 搜索进阶 [kuangbin带你飞]专题三 Dancing Links [kuangbin带你飞]专题四 最短路 ...

  2. 2015 百度之星 1003 棋盘占领 dfs

    棋盘占领 Time Limit: 20 Sec  Memory Limit: 256 MB 题目连接 http://bestcoder.hdu.edu.cn/contests/contest_show ...

  3. kuangbin 专题一 简单搜索

    kuangbin 专题一 简单搜索 1.POJ1321棋盘问题[DFS] 代码 自己的想法 2.POJ2251Dungeon Master[三维空间BFS] 代码 自己的想法 3.POJ3278 Ca ...

  4. kuangbin带你飞 专题1-23 题单

    kuangbin大神,对于打过ACM比赛的ACMer,无人不知无人不晓. 在此,附上vjudge平台上一位大神整理的[kuangbin带你飞]专题目录链接. [kuangbin带你飞专题目录1-23] ...

  5. [kuangbin带你飞]专题一 做题顺序与题解 【简单搜索】

    随便说点: 博主正在刷kuangbin专题的题目,初学者,没接触过什么算法,刷题的初衷是备战蓝桥杯,后来发现了算法资料大多是针对acm的,挑选kuangbin专题入门也是如此,毕竟这样分类看起来比较有 ...

  6. 第一周 kuangbin 搜索入门

    kuangbin 搜索入门 1.棋盘问题 POJ - 1321 2.Dungeon Master POJ - 2251 3.Catch That Cow POJ - 3278 4.POJ 3279(更 ...

  7. 老鱼的-kuangbin专题题解

    kuangbin专题问题一览 专题一 简单搜索 POJ 1321 棋盘问题 POJ 2251 Dungeon Master POJ 3278 Catch That Cow POJ 3279 Flipt ...

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

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

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

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

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

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

最新文章

  1. 一步一步玩控件:自定义TabControl——从山寨Safari开始
  2. 一个创业者的自我修养2019版
  3. 使用脚本进行 SAP Spartacus 安装工作
  4. linux之安装Clion和运行使用总结
  5. java与c语言_Java与C语言的区别之我见
  6. 异常处理-trycatch
  7. 关于设置table样式后,不停点击按钮table中的数据会逐渐被最后一行替换的问题...
  8. 第2章[2.4] Ext JS的类与类体系
  9. 惠斯通电桥信号调理芯片_变频器通电后无反应,如何检查维修?
  10. C++11/14::右值引用
  11. ubuntu xampp进入mysql安全模式
  12. 数据库索引怎么实现的
  13. UE 材质编辑器快捷键
  14. 51单片机3-红外通信
  15. ADW_Launcher
  16. Java集合类框架总结
  17. html网页字体出现模糊,浏览器打开网页字体模糊问题的解决方法
  18. 空间统计说历史:罗马七丘的空间分析(一)
  19. BIOS设置中还原coms设定的操作方法
  20. Paragon Hard Disk Manager 17 Business中文版

热门文章

  1. 高数 | 【一元函数积分学】常用积分公式表
  2. Microsoft visual FoxPro使用教程--添加csv文件数据到dbf文件中
  3. ECshop商城程序常见的97个小问题汇总
  4. 【解析】.NET中代理服务器WebProxy的各种用法
  5. 一起玩转CAN卡“第五通道”吧!
  6. 使用httpclient进行文件下载
  7. 更改Wamp下网站地址栏图标的显示
  8. 【机器学习入门到精通系列】元胞自动机和代码举例(这一篇就够了!)
  9. 从零开始学电脑知识,一步一步到成为电脑知识高手
  10. java生成pdf417条形码_python生成417条形码(PDF417)详解