Mud Puddles ( bfs )
传送门
题目
题解
直接bfs就行,有个坑点要注意:因为坐标存在负数,所以可以把所有点都+500转化为正数去做。
Code
#include<bits/stdc++.h>
#define debug1(x) cout<<#x<<"="<<x<<endl
#define debug2(x,y) cout<<#x<<"="<<x<<' '<<#y<<"="<<y<<endl
using namespace std;
const int maxn=1e4+10;
typedef long long ll;
int x,y,N,a[maxn],b[maxn];
bool book[1005][1005];
struct node
{int x,y,mindis;
}que[1000008];
int bfs(int qx,int qy,int zx,int zy)//qx,qy为起点坐标,zx,zy为终点坐标
{int next[4][2]={{0,1},{0,-1},{1,0},{-1,0}};int head=1,tail=1,tx,ty,qq=0;que[tail].x=qx,que[tail].y=qy,que[tail++].mindis=0;book[qx][qy]=1;while(head<tail){for(int i=0;i<4;i++){tx=que[head].x+next[i][1];ty=que[head].y+next[i][0];if(tx<0||ty<0||tx>1000||ty>1000)continue;if(!book[tx][ty]){book[tx][ty]=1;que[tail].x=tx,que[tail].y=ty;que[tail].mindis=que[head].mindis+1;tail++;}if(tx==zx&&ty==zy){qq=1;break;}}if(qq)break;head++;}return que[tail-1].mindis;
}
int main()
{ios::sync_with_stdio(false);cin>>x>>y>>N;x+=500,y+=500;for(int i=1;i<=N;++i){cin>>a[i]>>b[i];book[a[i]+500][b[i]+500]=1;}int ans=bfs(500,500,x,y);cout<<ans<<endl;return 0;
}
Mud Puddles ( bfs )相关推荐
- 搜索 —— 广搜的优化技巧
[例题] 连连看(HDU-1175)(简单推导):点击这里 字串变换(洛谷-P1032)(string的使用):点击这里 非常可乐(HDU-1495)(三维BFS):点击这里 Mud Puddles( ...
- 如何种植屡获殊荣的青豆
Most people don't know this yet, but I've decided to give up computers and become a farmer instead. ...
- [Usaco2007 Dec]穿越泥地[bfs][水]
Description 清早6:00,Farmer John就离开了他的屋子,开始了他的例行工作:为贝茜挤奶.前一天晚上,整个农场刚经受过一场瓢泼大雨的洗礼,于是不难想见,FJ 现在面对的是一大片泥泞 ...
- HDU-1459.非常可乐(BFS )
这道题TLE了很多次,原来一直以为将数字化为最简可以让运算更快,但是去了简化之后才发现,真正耗时的就是化简....还和队友学到了用状态少直接数组模拟刚就能过... 本题大意:给出可乐的体积v1,给出两 ...
- HDU1548:A strange lift(Dijkstra或BFS)
题目链接 http://acm.hdu.edu.cn/showproblem.php?pid=1548 题意:电梯每层有一个数,例如第n层有个数k, 那么这一层只能上k层或下k层,但是不能低于一层或高 ...
- HDU 1429 胜利大逃亡(续) (BFS+位压缩)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1429 胜利大逃亡(续) Time Limit: 4000/2000 MS (Java/Others) ...
- usaco Overfencing 穿越栅栏(BFS)
Overfencing 穿越栅栏 农夫 John 在外面的田野上搭建了一个巨大的用栅栏围成的迷宫.幸运的是,他在迷宫的边界上留出 了两段栅栏作为迷宫的出口.更幸运的是,他所建造的迷宫是一个" ...
- 数据结构--搜索BFS
文章目录 广度优先搜索 典型例题 广度优先搜索 广度优先搜索类似于树的层次遍历过程.它需要借助一个队列来实现.如图2-1-1所示,要想遍历从v0到v6的每一个顶点,我们可以设v0为第一层,v1.v2. ...
- 2017icpc沈阳 G Infinite Fraction Path BFS+剪枝
题意:给一个长度为n的字符串数组,你可以选定起点跳n次,从i点只能跳到(i*i+1)%n的位置,最后求一个最大字典序. 思路:要求最大的,即每一步都是最大,所以将最大的数都入队进行bfs跳下一步. 剪 ...
- HDU - 5876 Sparse Graph 2016 ACM/ICPC 大连网络赛 I题 bfs+set+补图最短路
题目链接 题意:给的补图,让你求一个源点到其他点的最短距离,因为图太稠密了, 用dij以及spfa根本不得行,这里只能用一种我不会方法来进行,这里用了bfs的方法以及set来维护,分别set维护一个未 ...
最新文章
- 真牛X!这款通用数据库连接工具DBeaver!可以连接和操作市面所有的数据库!...
- Fragment 与DialogFragment 相互之间传递数据
- cnn卷积神经网络应用_卷积神经网络(CNN):应用的核心概念
- 好看的php验证码,一漂亮的PHP图片验证码实例
- 资源不足的情况怎么设置sparkrdd并行度_监控录像机资源不足或达到上限的原因及解决方法!...
- web前端要学哪些东西,前端大牛分享的技能整理
- 【干货】2021技术展望:开拓新局,掌握变局时代的技术先机-埃森哲.pdf(附下载链接)
- 德鲁伊 oltp oltp_内存中OLTP –娱乐看门狗的三个关键点–桶数
- sysstat工具的用法
- python的对象和方法_python--类方法、对象方法、静态方法
- utilities(matlab)—— 图像分块(image2cols、cols2image)
- SpringBoot --thymeleaf(资源文件css、js的引入)
- powerquery分组_Power Query 基本功能使用
- 拦截器(Interceptor)和过滤器(Filter)区别
- restlet和ajax,使用Web测试插件Restlet Client发送Get和Post请求的方法教程
- eviews9.0详细安装步骤
- 金蝶K3序时簿页面增加物料即时库存显示功能
- 传输线的共模和差模噪声,抑制方法
- Python爬虫实战,QQ音乐爬取全部歌曲
- shell脚本输出颜色
热门文章
- innodb_io_capacity、innodb_io_capacity_max 的影响
- t分布f分布与样本均值抽样分布_常用概率分布
- Error: L6218E: Undefined symbol vApplicationGetIdleTaskMemory (referred from tasks.o).
- 路由器桥接dns服务器未响应,360路由器无线桥接的设置方法(电脑)?
- 如何阻止手机虚拟键盘弹起
- python批量生成列表_Python编程实战:根据数据表格,快速批量生成符合规范的WORD文档...
- Adidas商品上货监控,有货时提醒商品尺码
- 20doing 动名词
- python当中的列表函数和列表推导式
- 产品读书《游戏改变世界:游戏化如何让现实变得更美好》