ACM 152. [USACO Dec07] 泥潭(水BFS)

来源:互联网 发布:企业kk软件下载 编辑:程序博客网 时间:2024/04/27 17:57

152. [USACO Dec07] 泥潭

★☆   输入文件:mud.in   输出文件:mud.out   简单对比
时间限制:1 s   内存限制:128 MB

译 by CmYkRgB123

描述

Farmer John在早晨6点准时去给贝茜挤奶,然而昨天晚上下了大雨,他的牧场变得泥泞不堪了。Farmer John的家在坐标平面的 (0,0) 处,贝茜在 (X, Y) (-500 ≤ X ≤ 500; -500 ≤ Y ≤ 500)。他看见了所有的 N  (1 ≤ N ≤ 10,000) 个泥潭,分别在 (Ai, Bi) (-500 ≤ Ai ≤ 500; -500 ≤ Bi ≤ 500) 。每个泥潭只占一个点的位置。

Farmer John 刚刚买了新的靴子,他绝对不想把靴子踩进泥潭弄脏,而他又想尽快的找到贝茜。他已经快晚了,因为他花了大量的时间来找到所有的泥潭的位置。 Farmer John 只能平行于坐标轴移动,每次移动一个单位。请你帮助 Farmer John 找到一条路,使得 Farmer John 能够最快的找到贝茜,而且不会弄脏靴子。我们约定一定存在一条路使 Farmer John 找到贝茜。

输入

* 第 1 行: 三个整数  X, Y, N

* 第 2..N+1 行: 第 i+1 行 包含两个整数 Ai , Bi

输出

* 第 1 行: Farmer John 能够最快的找到贝茜,而且不会弄脏靴子,要走的最小的距离。

样例输入

1 2 70 2-1 33 11 14 2-1 12 2


样例输出

11


水BFS

#include <iostream>#include <cstdio>using namespace std;#define MAX_W 1001#define MAX_Q 10000#define ADD(x) x=(x+1)%MAX_Qint tx,ty,N;int map[MAX_W][MAX_W];struct Pos{int x,y;int step;} queue[MAX_Q];int front,rear;bool vis[MAX_W][MAX_W];int dx[]={1,-1,0,0};int dy[]={0,0,1,-1};int main(){freopen("mud.in","r",stdin);freopen("mud.out","w",stdout);cin>>tx>>ty>>N;tx+=500;ty+=500;for(int i=0;i<N;i++){int a,b;cin>>a>>b;a+=500;b+=500;map[a][b]=true;}front=rear=0;queue[rear]=Pos{0+500,0+500,0};ADD(rear);vis[500][500]=true;int ans;while(front!=rear){Pos p=queue[front];ADD(front);if(p.x==tx && p.y==ty){ans=p.step;}for(int i=0;i<4;i++){int nx,ny;nx=p.x+dx[i];ny=p.y+dy[i];if(nx>=0 && nx<=1000 && ny>=0 && ny<=1000 && !vis[nx][ny] && !map[nx][ny]){queue[rear]=Pos{nx,ny,p.step+1};vis[nx][ny]=true;ADD(rear);}}}cout<<ans<<endl;return 0;}


0 0
原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 派派背包食物不足怎么办 未转变者下不了怎么办 小升初户籍与房产不一致怎么办 小孩在外地读书怎么办计生证明 泉州居住证要半年小孩读书怎么办 孩子上学有兰山户口没有房产怎么办 培训机构跑路了怎么办 报的培训班跑路怎么办 巡视组举报后会怎么办 巡视组交办不办怎么办 分手以后还要不要联系忘不了怎么办 父母穷且不上进怎么办 惹父母生气了该怎么办 小孩戒奶不吃奶粉怎么办 孩子听不进去话怎么办 异性好朋友喜欢自己亲吻自己怎么办 对方对你反感了怎么办 家长偷看孩子日记老师怎么办 儿子与父母相冲怎么办 初二孩子不争气老师打他怎么办? 孩子被老师打又怎么办 家里2个孩子打架怎么办 一年级的学生特别会顶嘴怎么办 私立学校的学生顶嘴老师该怎么办 孩子做错事家长不道歉怎么办 孩孑语文成绩差怎么办 高三了孩子不愿意补课怎么办 四年级的孩子上课喜欢讲小话怎么办 五年级孩子太叛逆怎么办 二年级话唠孩子怎么办 家有老人带孩子怎么办 不会看孩子。孩子一哭就害怕怎么办 孩子不老实爱动怎么办 4周孩子脾气大怎么办 老公脾气暴躁爱骂人怎么办? 当妈妈了脾气不好怎么办 父亲很坏不顾家很会赌钱怎么办 妈妈骂我很难听怎么办 父母管的太严怎么办 2岁宝宝哭闹不止怎么办 8岁儿童叛逆期怎么办