TYVJ 1117 BFS
无限WA。。参考了一下题解和同学写的。。。。。。。
可以在bfs的基础上改一下。。
读入的时候平地权值是2 草地是0
bfs的时候如果搜到的是平地,那么直接加入,如果搜到的是草地,那么记录是草地。
从队列里面拿出来的时候,如果是平地就直接那出来,如果是草地就加到队尾,标记成平地。
目的就是保证层数和时间同步!start和end就看成平地好了
#include <cstdio>
#include <cstring>
#include <algorithm>
#include <queue>
#include <iostream>
using namespace std;
int x,y,t,a[66][66],sx,sy,ex,ey,vis[66][66];
int xx[]={1,-1,0,0},yy[]={0,0,1,-1};
queue <int> s,e;
int bfs()
{
s.push(sx);e.push(sy);
while(!s.empty())
{
int tempa=s.front(),tempb=e.front();
s.pop();e.pop();
if(tempa==ex&&tempb==ey) return vis[tempa][tempb];
if(a[tempa][tempb]==1)//草地加入
{
s.push(tempa);e.push(tempb);
a[tempa][tempb]=2;//标记成平地
vis[tempa][tempb]+=1;
continue;
}
for(int i=0;i<=3;i++)
{
int dx=tempa+xx[i],dy=tempb+yy[i];
if(dx<=x&&dx>0&&dy<=y&&dy>0&&a[dx][dy]!=-1&&!vis[dx][dy])
{
if(a[dx][dy]==0) a[dx][dy]=1;
s.push(dx);e.push(dy);
vis[dx][dy]=vis[tempa][tempb]+1;
}
}
}
}
int main()
{
scanf("%d%d%d",&t,&y,&x);//读入又是反的
char cc;
for(int i=1;i<=x;i++)
{
for(int j=1;j<=y;j++)
{
cin>>cc;
if(cc=='#') a[i][j]=0;
else if(cc=='.')a[i][j]=2;
else if(cc=='o')a[i][j]=-1;
else if(cc=='s')
{
sx=i;sy=j;a[i][j]=2;
}
else if(cc=='m')
{
ex=i;ey=j;a[i][j]=2;
}
}
}
int k=bfs();
k<t?printf("%d",k):printf("55555");//当k=t,则判断为未到!!因为这个WA了两次。。。
}
TYVJ 1117 BFS的更多相关文章
- TYVJ P3522 &&洛谷 P1135 奇怪的电梯 Label:bfs
题目描述 呵呵,有一天我做了一个梦,梦见了一种很奇怪的电梯.大楼的每一层楼都可以停电梯,而且第i层楼(1<=i<=N)上有一个数字Ki(0<=Ki<=N).电梯只有四个按钮:开 ...
- TYVJ P1083 分糖果 Label:bfs
描述 童年的我们,将和朋友分享美好的事物作为自己的快乐.这天,C小朋友得到了Plenty of candies,将要把这些糖果分给要好的朋友们.已知糖果从一个人传给另一个人需要1 秒的时间,同一个小朋 ...
- tyvj P1431 [Tyvj Jan]分配任务(最大流)
P1431 [Tyvj Jan]分配任务 时间: 1000ms / 空间: 131072KiB / Java类名: Main 描述 随着tyvj发展越来越大,管理员的任务越来越重,如何合理的 ...
- tyvj 1004 滑雪 记忆化搜索
滑雪 Time Limit: 1 Sec Memory Limit: 256 MB 题目连接 http://www.tyvj.cn/p/1004 Description trs喜欢滑雪.他来 ...
- tyvj 1031 热浪 最短路
热浪 Time Limit: 1 Sec Memory Limit: 256 MB 题目连接 http://tyvj.cn/p/1031 Description 德克萨斯纯朴的民眾们这个夏天正在遭受 ...
- TYVJ P1577 泥泞的道路
题目链接:http://www.tyvj.cn/p/1577# P1577 泥泞的道路 时间: 1000ms / 空间: 131072KiB / Java类名: Main 描述 公园中有n个景点,编号 ...
- 图的遍历(搜索)算法(深度优先算法DFS和广度优先算法BFS)
图的遍历的定义: 从图的某个顶点出发访问遍图中所有顶点,且每个顶点仅被访问一次.(连通图与非连通图) 深度优先遍历(DFS): 1.访问指定的起始顶点: 2.若当前访问的顶点的邻接顶点有未被访问的,则 ...
- 【BZOJ-1656】The Grove 树木 BFS + 射线法
1656: [Usaco2006 Jan] The Grove 树木 Time Limit: 5 Sec Memory Limit: 64 MBSubmit: 186 Solved: 118[Su ...
- POJ 3278 Catch That Cow(bfs)
传送门 Catch That Cow Time Limit: 2000MS Memory Limit: 65536K Total Submissions: 80273 Accepted: 25 ...
随机推荐
- 使用BCrypt算法加密存储登录密码用法及好处
//导入import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder; /** *使用BCrypt算法加密存储登录密码 ...
- TPS40305 ——开关电源芯片20160901
TPS4030X芯片共有3款,区别在于开关频率不同. 学习笔记: 1.当开关频率越高,所使用的电感的容量越小,电路越稳定. 2.对于mos管源极的地,尽量和mos管漏极的电源输入的地接近,并且与最终的 ...
- 有关javascript的性能优化(合理的管理内存)
使用具备垃圾收集机制的语言编写程序,开发人员一般不必操心内存管理的问题.但是,Javascript在进行内存管理及收集时面临的问题是有点与众不同.其中最主要的一个问题是分配给Web浏览器的可用内存数量 ...
- Android Design Support Library使用详解
Android Design Support Library使用详解 Google在2015的IO大会上,给我们带来了更加详细的Material Design设计规范,同时,也给我们带来了全新的And ...
- C 计算数组长度
int data[4],length; length=sizeof(data)/sizeof(data[0]); //数组占内存总空间除以单个元素占内存空间大小,即等于元素个数 printf(&qu ...
- python selenium与自动化
大学是学习过java,但是工作中没用,忘完了,而且哪怕以后有了机会,就是很不愿意去学这个语言,开始喜欢上了c#,但是随着学的升入,感觉.net太庞大了,要学习那么多,总感觉我学这个要做什么,感觉要做的 ...
- 北大poj-1091
跳蚤 Time Limit: 1000MS Memory Limit: 10000K Total Submissions: 9591 Accepted: 2892 Description Z ...
- hdu 1002
ps:wa了好多次,然后才发现是输入的时候%s和%s要隔开一个空格,我想当然了... 代码: #include "stdio.h" #include "string.h& ...
- 面向对象to1
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.T ...
- BackgroundWorker组件的作用
当构建一个图形化的Windows Form桌面应用程序并且需要执行在应用程序主UI线程之外的线程中长时间的任务时,BackgroundWorker类就很有用了. 要使用BackgroundWorker ...