[hdu 2102]bfs+注意INF
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2102
感觉这个题非常水,结果一直WA,最后发现居然是0x3f3f3f3f不够大导致的……把INF改成INF+INF就过了。
#include<bits/stdc++.h>
using namespace std; bool vis[][][];
char s[][][];
const int INF=0x3f3f3f3f; const int fx[]={,,,-};
const int fy[]={,-,,}; int bfs()
{
memset(vis,false,sizeof(vis));
queue< pair<int,int> > q;
while (!q.empty()) q.pop();
q.push(make_pair(*+*+,));
vis[][][]=true;
while (!q.empty())
{
int layer=q.front().first/;
int x=q.front().first%/;
int y=q.front().first%;
int st=q.front().second;
q.pop();
for (int i=;i<;i++)
{
int xx=x+fx[i];
int yy=y+fy[i];
if (s[layer][xx][yy]!='*' && !vis[layer][xx][yy])
{
if (s[layer][xx][yy]=='P' || (s[layer][xx][yy]=='#' && s[layer^][xx][yy]=='P')) return st+;
if (s[layer][xx][yy]=='#' && !vis[layer^][xx][yy])
{
vis[layer][xx][yy]=vis[layer^][xx][yy]=true;
q.push(make_pair((layer^)*+xx*+yy,st+));
}
if (s[layer][xx][yy]=='.' || s[layer][xx][yy]=='S')
{
vis[layer][xx][yy]=true;
q.push(make_pair(layer*+xx*+yy,st+));
}
}
}
}
return INF+INF;
} int main()
{
int T;
scanf("%d",&T);
while (T--)
{
memset(s,'*',sizeof(s));
int n,m,t;
cin >>n >>m >>t;
for (int _=;_<;_++)
for (int i=;i<=n;i++)
for (int j=;j<=m;j++)
cin >>s[_][i][j];
for (int i=;i<=n;i++)
for (int j=;j<=m;j++)
if (s[][i][j]=='#'&&s[][i][j]=='#' || s[][i][j]=='#'&&s[][i][j]=='*' || s[][i][j]=='*'&&s[][i][j]=='#') s[][i][j]=s[][i][j]='*';
if (bfs()<=t) cout <<"YES" <<endl;
else cout <<"NO" <<endl;
}
return ;
}
[hdu 2102]bfs+注意INF的更多相关文章
- hdu 2102 BFS
原题链接 思路:bfs搜一发 AC代码: #include "map" #include "queue" #include "math.h" ...
- hdu 4531 bfs(略难)
题目链接:点我 第一次不太清楚怎么判重,现在懂了,等下次再做 /* *HDU 4531 *BFS *注意判重 */ #include <stdio.h> #include <stri ...
- HDU - 2102 A计划 【BFS】
题目链接 http://acm.hdu.edu.cn/showproblem.php?pid=2102 思路 题目有两个坑点 0.Output 说 能在T时刻 找到公主 就输出 YES 但实际上 只要 ...
- hdu - 2102 A计划 (简单bfs)
http://acm.hdu.edu.cn/showproblem.php?pid=2102 题目还是不难,注意起点一定是(0,0,0),然后到达P点时间<=t都可以. 用一个3维字符数组存储图 ...
- hdu 2102 A计划(双层BFS)(具体解释)
转载请注明出处:http://blog.csdn.net/u012860063?viewmode=contents 题目链接:http://acm.hdu.edu.cn/showproblem.php ...
- HDU 2102 A计划(BFS)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2102 题目大意:公主被关在一个两层的迷宫里,迷宫的入口是S(0,0,0),公主的位置用P表示,时空传输 ...
- HDU 2102 A计划(两层地图加时间限制加传送门的bfs)
传送门: http://acm.hdu.edu.cn/showproblem.php?pid=2102 A计划 Time Limit: 3000/1000 MS (Java/Others) Me ...
- HDU 2102 A计划 (BFS)
A计划 Time Limit: 3000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Submiss ...
- hdu 2102 A计划 具体题解 (BFS+优先队列)
题目链接:pid=2102">http://acm.hdu.edu.cn/showproblem.php?pid=2102 这道题属于BFS+优先队列 開始看到四分之中的一个的AC率感 ...
随机推荐
- 一笔画问题 南阳acm42(貌似没用到什么算法)
一笔画问题 时间限制:3000 ms | 内存限制:65535 KB 难度:4 描述 zyc从小就比较喜欢玩一些小游戏,其中就包括画一笔画,他想请你帮他写一个程序,判断一个图是否能够用一笔画下 ...
- Black And White (DFS 训练题)
G - Black And White ================================================================================ ...
- JQuery中的load()、$.get()和$.post()详解 (转)
load() 1.载入HTML文档 load()方法是jQuery中最为简单和常用的Ajax方法,能载入远程HTML代码并插入DOM中. 它的结构为: load(url [,data][,callba ...
- 第三十四篇 Python面向对象之 反射(自省)
什么是反射? 反射的概念是由Smith在1982年提出的,主要是指程序可以访问.检测和修改它本身状态或行为的一种能力(自省).这一概念的提出很快引发了计算机科学领域关于应用反射性的研究.它首先被程序语 ...
- Tuxedo 介绍与安装
Tuxedo 介绍与安装(一) Tuxedo介绍 ...
- laravel跨域问题
// 只有同源策略才允许发送cookies // header('Access-Control-Allow-Credentials:true'); 需要要index.php下开启 最近写登录图形验证码 ...
- libvirt保持虚拟机运行情况下修改名称
通过virsh list命令能看到虚拟机的列表: [root@compute2 ~]# virsh list Id 名称 状态 ------------------------------------ ...
- 在阿里云上遇见更好的Oracle(三)
鬼扯完“去IOE”,继续回来说说这个系列文章的主角Oracle. 在DB-Engine的数据库排行榜中,Oracle已经占据了多年的第一(最新排名可以点击“阅读原文”).当然因为互联网行业的兴起,My ...
- 洛谷P1379八数码难题
题目描述 在3×3的棋盘上,摆有八个棋子,每个棋子上标有1至8的某一数字.棋盘中留有一个空格,空格用0来表示.空格周围的棋子可以移到空格中. 要求解的问题是:给出一种初始布局(初始状态)和目标布局(为 ...
- JavaScript Map数据结构
Array.prototype.remove = function (s) { for (var i = 0; i < this.length; i++) { if (s == this[i]) ...