[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率感 ...
随机推荐
- 最短路径算法 4.SPFA算法(1)
今天所说的就是常用的解决最短路径问题最后一个算法,这个算法同样是求连通图中单源点到其他结点的最短路径,功能和Bellman-Ford算法大致相同,可以求有负权的边的图,但不能出现负回路.但是SPFA算 ...
- [Cracking the Coding Interview] 4.2 Minimal Tree 最小树
Given a sorted(increasing order) array with unique integer elements, write an algorithm to create a ...
- 7 tftp
1. TFTP协议介绍 TFTP(Trivial File Transfer Protocol,简单文件传输协议) 是TCP/IP协议族中的一个用来在客户端与服务器之间进行简单文件传输的协议 特点: ...
- android .9图制作
andorid .9 图,可用于适配各种屏幕.制作的时候,很简单. 在stadio 里面,把鼠标放到图片的边界,点一下.这时候,图片的边缘会有黑块. 然后把鼠标放到黑块上,发现可以拉伸区域了. 这个区 ...
- LinqToExcel使用简介一
最近才看到原来也可以用Linq来访问Excel,功能还挺强大的.要使用这个功能,首先得下载一个LinqToExcel的相关文件,然后就可以调用相关的方法. 使用前面介 ...
- Android TV 开发(3)
本文来自网易云社区 作者:孙有军 <LinearLayout android:id="@+id/input_num_line_3" and ...
- 25、react入门教程
0. React介绍 0.1 什么是React? React(有时称为React.js 或ReactJS)是一个为数据提供渲染HTML视图的开源JavaScript库. 它由FaceBook.Inst ...
- OpenPAI:大规模人工智能集群管理平台介绍及任务提交指南
产品渊源: 随着人工智能技术的快速发展,各种深度学习框架层出不穷,为了提高效率,更好地让人工智能快速落地,很多企业都很关注深度学习训练的平台化问题.例如,如何提升GPU等硬件资源的利用率?如何节省硬件 ...
- 为 Ubuntu/Anaconda/pip 添加国内下载源
背景 正在看 tensorflow-lite 压缩模型的部分,结果 tutorial 一上来就要卸旧版安装 tf-nightly (新版?反正小白下就vans了) 然而好不容易才编译好源码舍不得删.又 ...
- mongolass 中报 ($.content: "say Hi ~") ✖ (type: String)
第二次报这个错了, 一直以为MongoDB的模型用的type 是 String, 一直报错, 找不到原因. // 留言模型1 exports.Comment = mongolass.model('Co ...