kuangbin棋盘问题
棋盘问题
在一个给定形状的棋盘(形状可能是不规则的)上面摆放棋子,棋子没有区别。要求摆放时任意的两个棋子不能放在棋盘中的同一行或者同一列,请编程求解对于给定形状和大小的棋盘,摆放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棋盘问题相关推荐
- kuangbin带你飞专题合集
题目列表 [kuangbin带你飞]专题一 简单搜索 [kuangbin带你飞]专题二 搜索进阶 [kuangbin带你飞]专题三 Dancing Links [kuangbin带你飞]专题四 最短路 ...
- 2015 百度之星 1003 棋盘占领 dfs
棋盘占领 Time Limit: 20 Sec Memory Limit: 256 MB 题目连接 http://bestcoder.hdu.edu.cn/contests/contest_show ...
- kuangbin 专题一 简单搜索
kuangbin 专题一 简单搜索 1.POJ1321棋盘问题[DFS] 代码 自己的想法 2.POJ2251Dungeon Master[三维空间BFS] 代码 自己的想法 3.POJ3278 Ca ...
- kuangbin带你飞 专题1-23 题单
kuangbin大神,对于打过ACM比赛的ACMer,无人不知无人不晓. 在此,附上vjudge平台上一位大神整理的[kuangbin带你飞]专题目录链接. [kuangbin带你飞专题目录1-23] ...
- [kuangbin带你飞]专题一 做题顺序与题解 【简单搜索】
随便说点: 博主正在刷kuangbin专题的题目,初学者,没接触过什么算法,刷题的初衷是备战蓝桥杯,后来发现了算法资料大多是针对acm的,挑选kuangbin专题入门也是如此,毕竟这样分类看起来比较有 ...
- 第一周 kuangbin 搜索入门
kuangbin 搜索入门 1.棋盘问题 POJ - 1321 2.Dungeon Master POJ - 2251 3.Catch That Cow POJ - 3278 4.POJ 3279(更 ...
- 老鱼的-kuangbin专题题解
kuangbin专题问题一览 专题一 简单搜索 POJ 1321 棋盘问题 POJ 2251 Dungeon Master POJ 3278 Catch That Cow POJ 3279 Flipt ...
- LeetCode简单题之判断国际象棋棋盘中一个格子的颜色
题目 给你一个坐标 coordinates ,它是一个字符串,表示国际象棋棋盘中一个格子的坐标.下图是国际象棋棋盘示意图. 如果所给格子的颜色是白色,请你返回 true,如果是黑色,请返回 false ...
- luogu P1549 棋盘问题(2) 题解
luogu P1549 棋盘问题(2) 题解 题目描述 在\(N * N\)的棋盘上\((1≤N≤10)\),填入\(1,2,-,N^2\)共\(N^2\)个数,使得任意两个相邻的数之和为素数. 例如 ...
- 【BZOJ-30391057】玉蟾宫棋盘制作 悬线法
3039: 玉蟾宫 Time Limit: 2 Sec Memory Limit: 128 MB Submit: 753 Solved: 444 [Submit][Status][Discuss] ...
最新文章
- 一步一步玩控件:自定义TabControl——从山寨Safari开始
- 一个创业者的自我修养2019版
- 使用脚本进行 SAP Spartacus 安装工作
- linux之安装Clion和运行使用总结
- java与c语言_Java与C语言的区别之我见
- 异常处理-trycatch
- 关于设置table样式后,不停点击按钮table中的数据会逐渐被最后一行替换的问题...
- 第2章[2.4] Ext JS的类与类体系
- 惠斯通电桥信号调理芯片_变频器通电后无反应,如何检查维修?
- C++11/14::右值引用
- ubuntu xampp进入mysql安全模式
- 数据库索引怎么实现的
- UE 材质编辑器快捷键
- 51单片机3-红外通信
- ADW_Launcher
- Java集合类框架总结
- html网页字体出现模糊,浏览器打开网页字体模糊问题的解决方法
- 空间统计说历史:罗马七丘的空间分析(一)
- BIOS设置中还原coms设定的操作方法
- Paragon Hard Disk Manager 17 Business中文版
热门文章
- 高数 | 【一元函数积分学】常用积分公式表
- Microsoft visual FoxPro使用教程--添加csv文件数据到dbf文件中
- ECshop商城程序常见的97个小问题汇总
- 【解析】.NET中代理服务器WebProxy的各种用法
- 一起玩转CAN卡“第五通道”吧!
- 使用httpclient进行文件下载
- 更改Wamp下网站地址栏图标的显示
- 【机器学习入门到精通系列】元胞自动机和代码举例(这一篇就够了!)
- 从零开始学电脑知识,一步一步到成为电脑知识高手
- java生成pdf417条形码_python生成417条形码(PDF417)详解