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

题目描述

棋盘问题

Time Limit: 1000MS Memory Limit: 10000K
Total Submissions: 63237 Accepted: 30234

Description

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

Source

解题思路:从问题出发,可以看出是一个搜索问题,棋盘是不规则的,而且棋子也不一定是排满的。需要对每一个位置进行可不可以下棋搜索,如果可以下,要考虑是否安排下棋。考虑到一行或者一列不能下两个棋子,对没行进行搜索,搜索到可以下的行需要考虑是否将棋子下入改行。最后考虑边界,停止搜索的边界有两个:一棋盘的边界n、二棋子下完的边界k。

#include<iostream>
using namespace std;
int way,result;//way表示已排多少棋子,result表示结果
int n,k;
int temp[10];//标记列是否已有棋子
char ch[10][10];
void dps(int l)//深度优先搜索函数
{if(way==k)//棋子排满边界{result++;return ;}if(l>=n)//设置数组边界{return ;}for(int i=0;i<n;i++)//考虑第l列的情况{if(ch[l][i]=='#'&&temp[i]==0){temp[i]=1;way++;dps(l+1);//将搜索的节点计算入内的情况temp[i]=0;//不将节点计算入内的情况way--;}}dps(l+1);//不考虑第l列的情况
}
int main()
{int i,j;while(cin>>n>>k&&(n!=-1||k!=-1)){//初始化way=0;result=0;for(i=0;i<n;i++)for(j=0;j<n;j++)cin>>ch[i][j];//从第0行开始深度优先搜索dps(0);cout<<result<<endl;}return 0;
}

 

转载于:https://www.cnblogs.com/ke-yi-/p/10175851.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/570634.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

计算机寄存器及标志位详解

以下是计算机内部寄存器阵列图&#xff1a; 以下FR控制标志位及其含义&#xff1a; 1. CF 进位标识位 进行加减运算时, 如果最高二进制位产生进位或错位, CF则为1, 否则为0. 程序设计中, 常用条件转移指令JC, JNC指令据此标志位实现转移 2. PF 奇偶标志位 操作结果…

NOIP 2010 引水入城

P1514 引水入城 题目描述 在一个遥远的国度&#xff0c;一侧是风景秀美的湖泊&#xff0c;另一侧则是漫无边际的沙漠。该国的行政区划十分特殊&#xff0c;刚好构成一个 NN 行 \times MM 列的矩形&#xff0c;如上图所示&#xff0c;其中每个格子都代表一座城市&#xff0c;每座…

关于IE8的SCODEF和 CREDAT

这里提供一些信息供理解IE8中的松散耦合处理方式。 由于IE8的LCIE更新&#xff0c; 现在比较难知道当前的tab是哪个iexplore.exe在处理。 如果你在用vista以上的系统&#xff0c; 任务管理器里有两列可以提供信息&#xff0c;分别是 commandline 和 pid&#xff0c; 如果这两列…

Cacls命令使用格式

Cacls命令使用格式如下&#xff1a; Cacls filename [/T] [/E] [/C] [/G user:perm] [/R user [...]] [/P user:perm [...]] [/D user [...]] Filename——显示访问控制列表&#xff08;以下简称ACL&#xff09;&#xff1b; /T——更改当前目录及其所有子目录中指定文件的 ACL…

前段mui框架初识

由于需要了解了一下mui框架&#xff0c;感觉没有想象的那么好 mui引入过后就要生成他自己的滚动条 而且 不能获取页面的高度 非屏幕的高度 mui上拉加载是会有卡顿现象的 &#xff0c; 这段代码执行完之后会有比较严重的手机段拖动卡顿现象 解决办法 给他设置滚动系数&#…

attrib指令

attrib 指令用于修改文件的属性.文件的常见属性有:只读.存档.隐藏和系统. 只读属性是指文件只可以做读的操作.不能对文件进行写的操作.就是文件的 写保护 . 存档属性是用来标记文件改动的.即在上一次备份后文件有所改动.一些备份软件在备份的时候会只去备份带有存档属性的文件.…

mysql创建表时反引号的作用

试用navicat工具查看现网mysql建表语句时&#xff0c;发现表名和字段名都是反引号引起来的 CREATE TABLE tab_notice_title_tv (i_id int(11) NOT NULL AUTO_INCREMENT,c_opcom_key varchar(32) DEFAULT NULL,c_view_type int(11) DEFAULT 1 COMMENT 平台类型,1:标清,2:高清,c_…

关于 Unity 版本升级后可能会引起偶发光照图错乱的问题

近期项目遇到一个奇怪的问题&#xff0c;使用 Unity 2017 版本升级后&#xff0c;团队中某些人的机器光照图总是不正确&#xff0c;而有的人是正确的&#xff0c;一直不知道为什么。 为了查到这个奇怪问题的原因&#xff0c;首先查看了美术的在 Max 中的导出设置&#xff0c;虽…

解决LSP问题导致无法上网

判断LSP是否损坏&#xff0c;以及修复方式的微软网址&#xff1a; http://support.microsoft.com/?scidkb%3Bzh-cn%3B811259 Winsock LSP全称Windows Socket Layered Service Provider(分层服务提供商)&#xff0c;它是Windows底层网络Socker通信需要经过的大门。一些流氓软件…

关于(int argc char **argv)

演示使用opencv显示一幅图片&#xff1a; #include <iostream> #include <core/core.hpp> #include <highgui/highgui.hpp> using namespace std; using namespace cv; void main(int argc,char **argv) {Mat imageimread(argv[1]);imshow("Lena",…

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\PendingFileRenameOperations

函数MoveFileEx(szDstFile, NULL, MOVEFILE_DELAY_UNTIL_REBOOT);实际上是对注册表中HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\PendingFileRenameOperations键进行修改&#xff0c;让操作系统在下一次启动后&#xff0c;AutoChk运行后&#xff0c…

【微信支付坑】

&#xff08;1&#xff09;每次去生成预支付时的订单号必须是不一样的--生成了没有支付 再次去支付要注意 &#xff08;2&#xff09;退款使用支付时支付异步返回&#xff08;微信订单号&#xff1a;transaction_id&#xff09; 转载于:https://www.cnblogs.com/fyandy/p/93324…

sc.exe 详解

sc.exe是一个命令行下管理本机或远程主机服务的工具,他的功能是非常强大的, 下面我们来讲讲他的一些常用的基本用法: 你可以在命令行下键入sc.exe/?获得帮助. 我们以在本机为例. 1.SC的基本格式: sc <server> [command] [service name] <option1> <optio…

Pytorch中的Batch Normalization操作

之前一直和小伙伴探讨batch normalization层的实现机理&#xff0c;作用在这里不谈&#xff0c;知乎上有一篇paper在讲这个&#xff0c;链接 这里只探究其具体运算过程&#xff0c;我们假设在网络中间经过某些卷积操作之后的输出的feature map的尺寸为4322 4为batch的大小&…

regsvr32.exe

regsvr32.exe用于注册Windows操作系统的动态链接库和ActiveX控件。 regsvr32.exe 文件建议修改权限&#xff0c;删除所有的用户只保存Administrators 和SYSTEM为所有权限 regsvr32.exe是32位系统下使用的DLL注册和反注册工具&#xff0c;使用它必须通过命令行的方式使用&#x…

洛谷P3369 普通平衡树

刚学平衡树&#xff0c;分别用了Splay和fhq-treap交了一遍。 这是Splay的板子&#xff0c;貌似比较短&#xff1f;Splay #include <iostream> #include <cstdio> #include <cstring> #include <algorithm>using namespace std;const int N 100005, IN…

利用专用文件夹隐藏文件 (tasks、fonts)

专用文件夹控制面板、回收站和计划任务文件夹%systemroot%tasks 。 可以通过在cmd.exe 下复制一个文件过去。例如&#xff1a; copy abc.txt %systemroot%tasks 键入&#xff1a; cd %systemroot%tasks 你可以看到&#xff0c;文件已经复制到了tasks目录中了。但是如果你通过资…

一个注册为输入法的木马分析

我已把此木马样本传到以下链接&#xff1a;http://download.csdn.net/detail/cs08211317dn/4096819 一&#xff0e;大致描述&#xff1a; 1. 样本名称&#xff1a;z.exe 2. 家族名&#xff1a; PWS:Win32/Zuten.gen!D(MIcrosoft) 3. MD5&#xff1a;E298C3…

剑指Offer名企面试官精讲典型编程题pdf

下载地址&#xff1a;网盘下载 《剑指Offer&#xff1a;名企面试官精讲典型编程题&#xff08;第2版&#xff09;》剖析了80个典型的编程面试题&#xff0c;系统整理基础知识、代码质量、解题思路、优化效率和综合能力这5个面试要点。《剑指Offer&#xff1a;名企面试官精讲典型…

木马爱修改的常见注册表项及其功能

IE相关&#xff1a; 设置IE多线程下载网页的线程数&#xff1a; HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\InternetSettings MaxConnectionPerServer&#xff08;字符串值&#xff09; 10&#xff08;设置最大同步下载连接数为10&#xf…