[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率感 ...
随机推荐
- Leecode刷题之旅-C语言/python-136只出现一次的数字
/* * @lc app=leetcode.cn id=136 lang=c * * [136] 只出现一次的数字 * * https://leetcode-cn.com/problems/singl ...
- PHP中文乱码分类及解决办法大全
PHP+MYSQL做网站开发通常都会碰到浏览器输出中文字符时乱码,这个问题的原因主要是因为HTML内容编码,PHP文件编码和MySQL数据库编码这三者不一致造成的.下面我们以UTF-8为例简述一下如何 ...
- R语言学习笔记(三):零碎知识点(1-10)
1--c() c表示"连接"(concatenate). 在R中向量是连续存储的,因此不能插入或删除元素. 2--seq() seq()的特殊用法,可以用在for循环里for(i ...
- windows下subversion服务器搭建
一.下载subversion服务器端和客户端软件 1.subversion下载地址:http://subversion.tigris.org/ 2.svn比较流行的客户端Tortoisesvn下载地址 ...
- 面试-MySQL总结
三范式 三范式定义(范式和反范式) 1NF:每个数据项都是最小单元,不可分割,确定行列之后只能对应一个数据. 2NF:每一个非主属性完全依赖于候选码(属性组的值能唯一的标识一个元组,但是其子集不可以) ...
- IdFTP中FEAT命令的问题
IdFTP控件很方便开发FTP客户端,用于传输文件.一次笔者的一个在阿里云的服务器突发故障,显示无法登陆FTP,而使用其他客户端(如FlashFxp)经过该项目设置,又可正常使用. 查询后说是FEAT ...
- 什么是OSS/BSS(电信业务)
电信业务运营支持系统(BOSS),面对客户是统一的:面对电信运营商,它融合了业务支撑系统(BSS)与运营支撑系统(OSS),是一个综合的业务运营和管理平台,同时也是真正融合了传统IP数据业务与移动增值 ...
- 一步一步学Linq to sql(四):查询句法
select 描述:查询顾客的公司名.地址信息 查询句法: var 构建匿名类型1 = from c in ctx.Customers select new { 公司名 = c.CompanyName ...
- OrCAD把原理图中的器件添加到原理图库
1. 在使用OrCAD的时候,有时需要把别人的原理图里面的器件添加到自己的原理图库,方便以后使用,具体操作如下,依次选择Design Cache---元器件--Copy 2. 选中要存放的原理图库,鼠 ...
- Spring+quartz cron表达式(cron手册官方)完美理解
------------------------------------- 15 17/1 14/3 * * ? 从每小时的17分15秒开始 每分钟的15秒执行一次14:17:15 ...14:59: ...