解题思路:一道简单题,却WA了十几发,犯几个低级错误。还是不能急躁,

        内心要平静,具体分析见代码:

 #include<iostream>
#include<cstdio>
#include<cstring>
#include<algorithm>
#include<queue>
using namespace std;
const int maxn = ;
char mapp[maxn][maxn][];
int dir[][] = {, , -, , , , , -};
int n, m, t, c; struct node{
int x, y;
int f;
int step;
}s, e; queue<node> q; int bfs()
{
while(!q.empty()) q.pop(); //没加这步WA了好多发
q.push(s); while(!q.empty())
{
s = q.front(); q.pop();
//debug时可打印路径
//printf("s.x = %d, s.y = %d, s.step = %d, s.flag = %d\n", s.x, s.y, s.step, s.flag); for(int i = ; i < ; i++)
{
e.x = s.x + dir[i][];
e.y = s.y + dir[i][];
e.step = s.step + ;
e.f = s.f; if(e.step > t || mapp[e.x][e.y][e.f] == '*') continue;//超过时间或不能走
if(mapp[e.x][e.y][e.f] == '#')
{
mapp[e.x][e.y][e.f] = '*'; //标记为已走过
e.f = - e.f; //穿越到另一层
//另一层若为#或*则标记为不能走
if(mapp[e.x][e.y][e.f] == '#' || mapp[e.x][e.y][e.f] == '*')
{
mapp[e.x][e.y][e.f] = '*';
continue; //必不可少
}
} if(mapp[e.x][e.y][e.f] == 'P') return ; //找到公主
mapp[e.x][e.y][e.f] = '*'; //标记为已走过
q.push(e);
}
}
return ; //规定时间没找到
} int main()
{
scanf("%d", &c);
while(c --)
{
memset(mapp, '*', sizeof(mapp));
scanf("%d %d %d", &n, &m, &t); for(int i = ; i <= n; i++) for(int j = ; j <= m; j++)
scanf(" %c", &mapp[i][j][]); for(int i = ; i <= n; i++) for(int j = ; j <= m; j++)
scanf(" %c", &mapp[i][j][]); s.x = , s.y = , s.step = , s.f = ;
if(bfs()) printf("YES\n");
else printf("NO\n");
}
return ;
}

HDU2102 A计划的更多相关文章

  1. Hdu2102 A计划 2017-01-18 14:40 60人阅读 评论(0) 收藏

    A计划 Time Limit : 3000/1000ms (Java/Other)   Memory Limit : 32768/32768K (Java/Other) Total Submissio ...

  2. HDU2102 A计划 —— BFS

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2102 A计划 Time Limit: 3000/1000 MS (Java/Others)    Me ...

  3. 搜索专题: HDU2102 A计划

    这不知道是公主被抓走了第几次了,反正我们的骑士救就对了(别说了,我都救我都救...);这次的迷宫有些特别,双层,带电梯(?),而且这个电梯还有生命危险,可能会撞死(一层是电梯,一层是墙),或者永远困在 ...

  4. A计划 hdu2102(BFS)

    A计划 hdu2102 可怜的公主在一次次被魔王掳走一次次被骑士们救回来之后,而今,不幸的她再一次面临生命的考验.魔王已经发出消息说将在T时刻吃掉公主,因为他听信谣言说吃公主的肉也能长生不老.年迈的国 ...

  5. A计划 hdu2102(bfs一般题)

    A计划 Time Limit: 3000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total Submis ...

  6. 【HDU - 2102】A计划(bfs)

    -->A计划 Descriptions: 可怜的公主在一次次被魔王掳走一次次被骑士们救回来之后,而今,不幸的她再一次面临生命的考验.魔王已经发出消息说将在T时刻吃掉公主,因为他听信谣言说吃公主的 ...

  7. 【声明】前方不设坑位,不收费!~ 我为NET狂官方学习计划

    发个通知,过段时间学习计划相关的东西就出来了,上次写了篇指引文章后有些好奇心颇重的人跟我说:“发现最近群知识库和技能库更新的频率有点大,这是要放大招的节奏啊!” 很多想学习却不知道如何规划的人想要一个 ...

  8. SQL Server-聚焦查询计划Stream Aggregate VS Hash Match Aggregate(二十)

    前言 之前系列中在查询计划中一直出现Stream Aggregate,当时也只是做了基本了解,对于查询计划中出现的操作,我们都需要去详细研究下,只有这样才能对查询计划执行的每一步操作都了如指掌,所以才 ...

  9. ORACLE从共享池删除指定SQL的执行计划

    Oracle 11g在DBMS_SHARED_POOL包中引入了一个名为PURGE的新存储过程,用于从对象库缓存中刷新特定对象,例如游标,包,序列,触发器等.也就是说可以删除.清理特定SQL的执行计划 ...

随机推荐

  1. C#中毫米与像素的换算方法

    C#中以像素作为尺寸单位,像素是一种相对的尺寸概念,与毫米的转换与当前显示器的分辨率有关.在不同分辨率下转换的系数不同. 借助GDI可以完成毫米至像素的转换. public static double ...

  2. win10开机密码怎么取消

    win10怎么取消电脑开机密码?比较快捷的方法就是使用netplwiz在WIN2000以后的版本都是适用.最新版的WIN10同样也是适用的.下面我来演示一下win10开机密码怎么取消? 1. WIN1 ...

  3. Project Euler 107:Minimal network 最小网络

    Minimal network The following undirected network consists of seven vertices and twelve edges with a ...

  4. RSS FEED的应用

    参考:http://inezha.com/help/feedrss 今天工作中遇到了一个知识是RSS FEED.当时觉得很奇怪,我们要这个干嘛用?RSS Feed就是一个xml文件.里面不包含数据,但 ...

  5. java多线程理解2

    1. 什么时候必须同步?什么叫同步?如何同步? 要跨线程维护正确的可见性,只要在几个线程之间共享非 final 变量,就必须使用 synchronized(或 volatile)以确保一个线程可以看见 ...

  6. DIV CSS设计时IE6、IE7、FF 与兼容性有关的特性(转载的)

    在网站设计的时候,应该注意css样式兼容不同浏览器问题,特别是对完全使用DIV CSS设计的网,就应该更注意IE6 IE7 FF对CSS样式的兼容,不然,你的网乱可能出去不想出现的效果! 所有浏览器 ...

  7. 在CentOS下面编译WizNote Qt Project

    编译环境 CentOS 64位 Desktop 版本:6.5 编译前的准备: CentOS的用户默认没有root权限,如果当前用户没有权限root,则可以在终端里面执行下面的命令: su root s ...

  8. CentOS7安装配置FTP服务器

    假设我们有以下要求 路径 权限 备注 /ftp/open 公司所有人员包括来宾均可以访问 只读 /ftp/private 仅允许Alice.Jack.Tom三个人访问 Alice.Jack只允许下载, ...

  9. Linux系统添加硬盘设备(磁盘分区-格式化-挂载-使用)

    当全新安装了一块新的硬盘设备后,为了更充分.更安全的利用硬盘空间首先要进行磁盘的分区, 然后格式化,最后挂载使用. 实例:对新添加的硬盘设备进行分区.格式化并挂载到/newFS目录. 第一步:在vmw ...

  10. Oracle ->> 行转列, 列转行

    除了Pivot和Unpivot这两个函数,还有像CASE WHEN + 聚合函数像MAX,SUM这类的来完成.今天发现Oracle下居然有这样一个和SQL SERVER 2012以后新增的新函数叫II ...