virtual judge(专题一 简单搜索 A)
问题描述:
Description
Input
每组数据的第一行是两个正整数,n k,用一个空格隔开,表示了将在一个n*n的矩阵内描述棋盘,以及摆放棋子的数目。 n <= 8 , k <= n
当为-1 -1时表示输入结束。
随后的n行描述了棋盘的形状:每行有n个字符,其中 # 表示棋盘区域, . 表示空白区域(数据保证不出现多余的空白行或者空白列)。
Output
Sample Input
- 2 1
- #.
- .#
- 4 4
- ...#
- ..#.
- .#..
- #...
- -1 -1
Sample Output
- 2
- 1
- #include"cstdio"
- #include"queue"
- using namespace std;
- const int MAXN=;
- typedef pair<int,int> P;
- P vec[MAXN];
- int cnt;
- char map[MAXN][MAXN];
- int n,k;
- int visr[MAXN];
- int visc[MAXN];
- int ans;
- void dfs(int i,int j)
- {
- if(j==k)
- {
- ans++;
- return ;
- }
- if(i==cnt) return ;
- P no=vec[i];
- if(!visr[no.first]&&!visc[no.second])
- {
- visr[no.first]=;
- visc[no.second]=;
- dfs(i+,j+);
- visr[no.first]=;
- visc[no.second]=;
- dfs(i+,j);
- }
- else dfs(i+,j);
- }
- int main()
- {
- while(scanf("%d%d",&n,&k)!=EOF&&n!=-&k!=-)
- {
- cnt=;
- scanf("%*c");
- for(int i=;i<n;i++)
- {
- for(int j=;j<n;j++)
- {
- scanf("%c",&map[i][j]);
- if(map[i][j]=='#')
- {
- vec[cnt++]=P(i,j);
- }
- }
- scanf("%*c");
- }
- ans=;
- dfs(,);
- printf("%d\n",ans);
- }
- return ;
- }
清晰思路2:
- #include"cstdio"
- using namespace std;
- char map[][];
- int n,k;
- int ans;
- int vis[];
- void dfs(int i,int j)
- {
- if(j==k)
- {
- ans++;
- return;
- }
- if(i==n) return ;
- dfs(i+,j);
- for(int x=;x<n;x++)
- {
- if(map[i][x]=='#'&&!vis[x])
- {
- vis[x]=;
- dfs(i+,j+);
- vis[x]=;
- }
- }
- }
- int main()
- {
- while(scanf("%d%d",&n,&k)!=EOF&&n!=-)
- {
- ans=;
- for(int i=;i<n;i++)
- scanf("%s",map[i]); //新地图输入方式
- dfs(,);
- printf("%d\n",ans);
- }
- return ;
- }
virtual judge(专题一 简单搜索 A)的更多相关文章
- virtual judge(专题一 简单搜索 E)
Description Given a positive integer n, write a program to find out a nonzero multiple m of n whose ...
- virtual judge(专题一 简单搜索 C)
Description Farmer John has been informed of the location of a fugitive cow and wants to catch her i ...
- virtual judge(专题一 简单搜索 B)
Description You are trapped in a 3D dungeon and need to find the quickest way out! The dungeon is co ...
- [kuangbin带你飞]专题一 简单搜索 题解报告
又重头开始刷kuangbin,有些题用了和以前不一样的思路解决.全部题解如下 点击每道题的标题即可跳转至VJ题目页面. A-棋盘问题 棋子不能摆在相同行和相同列,所以我们可以依此枚举每一行,然后标记每 ...
- [kuangbin带你飞]专题一 简单搜索(回顾)
A - 棋盘问题 POJ - 1321 注意条件:不能每放一个棋子,就标记一行和一列,我们直接枚举每一行就可以了. AC代码: #include<iostream> #include< ...
- kuangbin专题 专题一 简单搜索 Oil Deposits HDU - 1241
题目链接:https://vjudge.net/problem/HDU-1241 题意:问有几个油田,一个油田由相邻的‘@’,组成. 思路:bfs,dfs都可以,只需要遍历地图,遇到‘@’,跑一遍搜索 ...
- kuangbin专题 专题一 简单搜索 迷宫问题 POJ - 3984
题目链接:https://vjudge.net/problem/POJ-3984 这个题目,emm,上代码,看的估计应该是刚开始接触搜索的,我带点注释,你能慢慢理解. #include <ios ...
- kuangbin专题 专题一 简单搜索 Fire! UVA - 11624
题目链接:https://vjudge.net/problem/UVA-11624 题意:一个迷宫,可能有一个或者多个地方着火了,每过1个时间消耗,火会向四周蔓延,问Joe能不能逃出迷宫,只要走出迷宫 ...
- kuangbin专题 专题一 简单搜索 Fliptile POJ - 3279
题目链接:https://vjudge.net/problem/POJ-3279 题意:格子有两面,1表示黑色格子,0表示白色格子,奶牛每次可以踩一个格子,踩到的格子和它周围的上下左右格子都会翻面,也 ...
随机推荐
- 我的Android进阶之旅------>如何获取Android控件的宽和高
本文转载于:http://blog.csdn.net/johnny901114/article/details/7839512 我们都知道在onCreate()里面获取控件的高度是0,这是为什么呢?我 ...
- 如何下载symfony
php -r "readfile('https://symfony.com/installer');" > symfony 可能无法下载,:那么你检查一下你的php.ini找 ...
- 高性能javascript学习总结(2)--DOM编程
我们知道,对DOM的操作都是非常的耗性能的,那么为什么会耗性能呢? 文档对象模型(DOM)是一个独立于语言的,使用 XML和 HTML 文档操作的应用程序接口(API).在浏览器中,主要与 ...
- Oracle数据库体系结构(1)整体概述
oracle数据库的存储结构: 逻辑存储结构:oracle内部的组织和管理数据的方式 物理存储结构:oracle外部(操作系统)组织和管理数据的方式 oracle对逻辑存储结构和物理存储结构的管理是分 ...
- python cookbook 迭代器与生成器
代理迭代 a = [1, 2, 3] for i in iter(a): print(i) for i in a.__iter__(): print(i) 这里的两个方法是一样的,调用iter()其实 ...
- Effective java -- 7 通用程序设计
第四十五条:将局部变量的作用域最小化 第四十六条:加强版for循环优于传统for循环 第四十七条:了解和使用类库书中提到了一个生成随机数的例子.正好需要. public static void mai ...
- hbase shell-namespace(命名空间指令)
hbase shell命名空间namespace篇: 1. alter_namespace (一般用于添加删除一个属性,很少使用) hbase(main)::> help 'alter_name ...
- <基于Qt与POSIX线程>多线程下载器的简易搭建
原创博客,转载请联系博主! 本项目已托管到本人Git远程库:https://github.com/yue9944882/Snow 项目目标 Major Functionality 开发环境: Ce ...
- 剑指offer之 替换空格
package Problem4; public class ReplaceBank { /* * 题目描述: 请实现一个函数,将字符串的每个空格替换为"%20". * 例如输入& ...
- Java强引用、 软引用、 弱引用、虚引用
Java强引用. 软引用. 弱引用.虚引用 2012-07-09 1.对象的强.软.弱和虚引用 在JDK 1.2以前的版本中,若一个对象不被任何变量引用,那么程序就无法再使用这个对象.也 ...