ACM_Jack拆炸弹(深搜)
Jack拆炸弹
Time Limit: 2000/1000ms (Java/Others)
Problem Description:
在一个由n*n个格子组成的监狱里被恐怖份子安置了一个定时炸弹。其中,连续的“.”表示格子之间可以通行,“#”表示障碍物。每次只能按上下左右4个方向走,有障碍物就不能通过。给出一副监狱的俯视图和炸弹(B)和侦探Jack(P)的位置,问Jack能不能找到炸弹的安置点并及时把它拆除,若可以输出"Yes",否则输出“No”.
Input:
输入包含多组测试数据,每组数据第一行为一整数n(n<=100),接着以方格形式输入n*n个字符。
Output:
对于每组测试数据,输出为一行,若Jack可以找到炸弹输出"Yes",否则输出“No”.
Sample Input:
4
#.P.
.#..
.##.
.B..
8
#.#....P
B#....#.
.#......
#......#
.#....#.
#....###
.##.....
#......#
Sample Output:
Yes
No
解题思路:还是简单的深搜,水过!
AC代码(7ms):
#include<bits/stdc++.h>
using namespace std;
int si,sj,n,dir[][]={{-,},{,},{,},{,-}};char msp[][];bool flag;
void dfs(int x,int y){
if(x<||y<||x>=n||y>=n||msp[x][y]=='#')return;
if(msp[x][y]=='B'){flag=true;return;}//找到'B',则直接返回
msp[x][y]='#';//将走过的点标记为'#',表示不能再走
for(int i=;i<;++i){
dfs(x+dir[i][],y+dir[i][]);
if(flag)return;//如果找到,则直接返回
}
}
int main(){
while(~scanf("%d",&n)){
for(int i=;i<n;++i){
getchar();//吃掉回车符对字符读取的影响
for(int j=;j<n;++j){
scanf("%c",&msp[i][j]);
if(msp[i][j]=='P'){si=i,sj=j;}//标记'P'的坐标
}
}
flag=false;dfs(si,sj);
if(flag)printf("Yes\n");
else printf("No\n");
}
return ;
}
ACM_Jack拆炸弹(深搜)的更多相关文章
- uva12558 Egyptian Fractions (HARD version)(迭代深搜)
Egyptian Fractions (HARD version) 题解:迭代深搜模板题,因为最小个数,以此为乐观估价函数来迭代深搜,就可以了. #include<cstdio> #inc ...
- 方格取数(多线程dp,深搜)
https://www.luogu.org/problem/P1004 题目描述 设有N×N的方格图(N≤9),我们将其中的某些方格中填入正整数,而其他的方格中则放入数字0.如下图所示(见样例): 某 ...
- HDU--杭电--1195--Open the Lock--深搜--都用双向广搜,弱爆了,看题了没?语文没过关吧?暴力深搜难道我会害羞?
这个题我看了,都是推荐的神马双向广搜,难道这个深搜你们都木有发现?还是特意留个机会给我装逼? Open the Lock Time Limit: 2000/1000 MS (Java/Others) ...
- 利用深搜和宽搜两种算法解决TreeView控件加载文件的问题。
利用TreeView控件加载文件,必须遍历处所有的文件和文件夹. 深搜算法用到了递归. using System; using System.Collections.Generic; using Sy ...
- 2016弱校联盟十一专场10.3---Similarity of Subtrees(深搜+hash、映射)
题目链接 https://acm.bnu.edu.cn/v3/problem_show.php?pid=52310 problem description Define the depth of a ...
- 2016弱校联盟十一专场10.2---Around the World(深搜+组合数、逆元)
题目链接 https://acm.bnu.edu.cn/v3/problem_show.php?pid=52305 problem description In ICPCCamp, there ar ...
- 2015暑假多校联合---Cake(深搜)
题目链接:HDU 5355 http://acm.split.hdu.edu.cn/showproblem.php?pid=5355 Problem Description There are m s ...
- 深搜+回溯 POJ 2676 Sudoku
POJ 2676 Sudoku Time Limit: 2000MS Memory Limit: 65536K Total Submissions: 17627 Accepted: 8538 ...
- 深搜+DP剪枝 codevs 1047 邮票面值设计
codevs 1047 邮票面值设计 1999年NOIP全国联赛提高组 时间限制: 1 s 空间限制: 128000 KB 题目等级 : 钻石 Diamond 题目描述 Description ...
随机推荐
- Python selenium chrome打包exe后禁用控制台输出滚动日志
Python selenium chrome打包exe后,在运行的过程中,如果遇到需要input()输入时,会发现被不断滚动刷新的日志把命令行输入快速顶掉了,通过查阅资料不断实践,发现以下方法有效: ...
- DemoKit编译过程
E:\Project_code\EAE\src_rev_24139_A95LYD\Project\DemoKit>make release Checking uITRON - DemoKit r ...
- L2-011. 玩转二叉树(不建树)
L2-011. 玩转二叉树 给定一棵二叉树的中序遍历和前序遍历,请你先将树做个镜面反转,再输出反转后的层序遍历的序列.所谓镜面反转,是指将所有非叶结点的左右孩子对换.这里假设键值都是互不相等的正整 ...
- lucas定理和组合数学
自湖南长沙培训以来的坑...一直未填,今天把这个问题解决掉. 参考: 1.http://www.cnblogs.com/Var123/p/5523068.html 2.http://blog.csdn ...
- mysql function 查询子级机构
DROP FUNCTION IF EXISTS queryChildOrgList;CREATE FUNCTION queryChildOrgList(id VARCHAR(20))RETURNS V ...
- java使用JNA框架调用dll动态库
这两天了解了一下java调用dll动态库的方法,总的有三种:JNI.JNA.JNative.其中JNA调用DLL是最方便的. ·JNI ·JNA ·JNative java使用 JNI来调用dll动态 ...
- java,有用的代码片段
在我们写程序的过程中,往往会经常遇到一些常见的功能.而这些功能或效果往往也是相似的,解决方案也相似.下面是我在写代码的过程中总结的一些有用的代码片段. 1.在多线程环境中操作同一个Collection ...
- 【Codeforces 339C】Xenia and Weights
[链接] 我是链接,点我呀:) [题意] 在天平上放砝码 你要在左边放一下然后到右边放一下 一直重复这样放m次 每次你放在其中一边都要让另外一边的重量比你少 你可以用1~10中的某些砝码 问你要怎样放 ...
- ansible plugins简介
ansible插件是增强ansible的核心功能的代码片段,ansible使用插件架构来实现丰富,灵活和可扩展的功能集. Ansible提供了许多方便的插件,您可以轻松编写自己的插件. 下边简单介绍A ...
- C#中的定制特性(Attributes)
C#中的定制特性(Attributes) 介绍 Attributes是一种新的描述信息,我们既可以使用attributes来定义设计期信息(例如:帮助文件.文档的URL),还可能用attributes ...