P2873 [USACO07DEC]泥水坑Mud Puddles

题目描述

Farmer John is leaving his house promptly at 6 AM for his daily milking of Bessie. However, the previous evening saw a heavy rain, and the fields are quite muddy. FJ starts at the point (0, 0) in the coordinate plane and heads toward Bessie who is located at (X, Y) (-500 ≤ X ≤ 500; -500 ≤ Y ≤ 500). He can see all N (1 ≤ N ≤ 10,000) puddles of mud, located at points (Ai, Bi) (-500 ≤ Ai ≤ 500; -500 ≤ Bi ≤ 500) on the field. Each puddle occupies only the point it is on.

Having just bought new boots, Farmer John absolutely does not want to dirty them by stepping in a puddle, but he also wants to get to Bessie as quickly as possible. He's already late because he had to count all the puddles. If Farmer John can only travel parallel to the axes and turn at points with integer coordinates, what is the shortest distance he must travel to reach Bessie and keep his boots clean? There will always be a path without mud that Farmer John can take to reach Bessie.

清早6:00,Farmer John就离开了他的屋子,开始了他的例行工作:为贝茜挤奶。前一天晚上,整个农场刚经受过一场瓢泼大雨的洗礼,于是不难想见,FJ 现在面对的是一大片泥泞的土地。FJ的屋子在平面坐标(0, 0)的位置,贝茜所在的牛棚则位于坐标(X,Y) (-500 <= X <= 500; -500 <= Y <= 500)处。当然咯, FJ也看到了地上的所有N(1 <= N <= 10,000)个泥塘,第i个泥塘的坐标为 (A_i, B_i) (-500 <= A_i <= 500;-500 <= B_i <= 500)。每个泥塘都只占据了它所在的那个格子。 Farmer John自然不愿意弄脏他新买的靴子,但他同时想尽快到达贝茜所在的位置。为了数那些讨厌的泥塘,他已经耽搁了一些时间了。如果Farmer John 只能平行于坐标轴移动,并且只在x、y均为整数的坐标处转弯,那么他从屋子门口出发,最少要走多少路才能到贝茜所在的牛棚呢?你可以认为从FJ的屋子到牛棚总是存在至少一条不经过任何泥塘的路径。

输入输出格式

输入格式:

  • Line 1: Three space-separate integers: X, Y, and N.

  • Lines 2..N+1: Line i+1 contains two space-separated integers: Ai and Bi

输出格式:

  • Line 1: The minimum distance that Farmer John has to travel to reach Bessie without stepping in mud.

输入输出样例

输入样例#1: 复制

1 2 7
0 2
-1 3
3 1
1 1
4 2
-1 1
2 2

输出样例#1: 复制

11思路:宽搜
#include<queue>
#include<cstdio>
#include<cstring>
#include<iostream>
#include<algorithm>
using namespace std;
int sx,sy,n,flag,ans=0x7f7f7f7f;
int tx[4]={1,-1,0,0};
int ty[4]={0,0,1,-1};
int map[1010][1010];
struct nond{int x,y,dis;
};
int main(){scanf("%d%d%d",&sx,&sy,&n);sx+=500;sy+=500;for(int i=1;i<=n;i++){int x,y;scanf("%d%d",&x,&y);map[x+500][y+500]=1;}queue<nond>que;que.push((nond){500,500,0});map[500][500]=1;while(!que.empty()){nond now=que.front();que.pop();for(int i=0;i<4;i++){int dx=now.x+tx[i];int dy=now.y+ty[i];if(dx<0||dy<0||map[dx][dy])    continue;if(dx==sx&&dy==sy){ ans=now.dis+1;flag=1;break; }    map[dx][dy]=1;que.push((nond){dx,dy,now.dis+1});}if(flag)    break;}cout<<ans;
}

 

转载于:https://www.cnblogs.com/cangT-Tlan/p/7859728.html

洛谷 P2873 [USACO07DEC]泥水坑Mud Puddles相关推荐

  1. 洛谷——P2872 [USACO07DEC]道路建设Building Roads

    P2872 [USACO07DEC]道路建设Building Roads 题目描述 Farmer John had just acquired several new farms! He wants ...

  2. 洛谷——P2871 [USACO07DEC]手链Charm Bracelet

    https://www.luogu.org/problem/show?pid=2871 题目描述 Bessie has gone to the mall's jewelry store and spi ...

  3. 信息学奥赛一本通 1294:Charm Bracelet | OpenJudge NOI 2.6 7113:Charm Bracelet | 洛谷 P2871

    [题目链接] ybt 1294:Charm Bracelet OpenJudge NOI 2.6 7113:Charm Bracelet 洛谷 P2871 [USACO07DEC]Charm Brac ...

  4. 【洛谷】P2676 [USACO07DEC]Bookshelf B (c++)

    题目描述 Farmer John最近为奶牛们的图书馆添置了一个巨大的书架,尽管它是如此的大,但它还是几乎瞬间就被各种各样的书塞满了.现在,只有书架的顶上还留有一点空间. 所有 N(1≤N≤20,000 ...

  5. 深搜+广搜——Lake Counting S(洛谷 P1596)

    题目选自洛谷P1596 这道题目我觉得是比较综合的搜索题了,可以用dfs.bfs来解题.下面给出2种方法的思路: 首先,确定什么情况是一个水坑: 对于每一个'w' ,如果在八个方向上有于其相邻的'w' ...

  6. 洛谷:P6062 [USACO05JAN]Muddy Fields G

    题目链接:P6062 [USACO05JAN]Muddy Fields G - 洛谷 | 计算机科学教育新生态 (luogu.com.cn) 此题重点在二分图的建图. 考虑放置木板的决策,由于可以重复 ...

  7. 2021寒假——洛谷刷题计划(35题)

    (希望大家不要Copy) AC:Accept,程序通过. CE:Compile Error,编译错误. PC:Partially Correct,部分正确. WA:Wrong Answer,答案错误. ...

  8. 洛谷-题解 P2672 【推销员】

    独门思路!链表加优先队列! 这题一望,贪心是跑不掉了,但是我贪心并不好,所以想到了一个复杂一些但思路更保稳的做法 思路: 1 因为是离线操作,所以我们可以倒着求,先求x=n的情况,因为那样直接就知道了 ...

  9. 洛谷 P1142 轰炸

    洛谷 P1142 轰炸 题目描述 "我该怎么办?"飞行员klux向你求助. 事实上,klux面对的是一个很简单的问题,但是他实在太菜了. klux要想轰炸某个区域内的一些地方,它们 ...

  10. 洛谷 P1387 最大正方形

    P1387 最大正方形 题目描述 在一个n*m的只包含0和1的矩阵里找出一个不包含0的最大正方形,输出边长. 输入输出格式 输入格式: 输入文件第一行为两个整数n,m(1<=n,m<=10 ...

最新文章

  1. Cadence IC使用教程
  2. 国产linux 中标麒麟安装.net core sdk
  3. 浅谈MyBatis一级缓存
  4. mybatis-查询过程
  5. VC各种情况下的窗口句柄的获取
  6. 字符流中的编码解码问题
  7. 通过日志恢复SQL Server的历史数据
  8. 硬核!这所大学包下高铁,接滞留湖北的学生返校!
  9. 移动边缘计算MEC学习笔记
  10. 正则验证手机号码和邮箱格式
  11. 虚拟机ruc_sched Self-detected stall on cpu{4}(t=60001)
  12. 主板音频接口连接说明
  13. 营销邮件这样写 客户打开率会更高
  14. Windows 安全资料库网站
  15. 如何整合线上和线下营销进行深度交融
  16. 志愿者服务系统php,志愿者服务系统
  17. 关于网络密码的可怕真相
  18. 新浪微博爬虫-抓取用户发布的微博
  19. Eureka学习笔记
  20. lua 自实现pairs

热门文章

  1. 网卡超时实现机制 watchdog_timeo/ndo_tx_timeout
  2. docker 访问宿主机网络
  3. 【数据结构与算法】之深入解析“香槟塔”的求解思路与算法示例
  4. 乒乓球侧旋球MATLAB,浅说细谈乒乓球力学(一)
  5. Cocos2d-x3.2刀塔创奇三消游戏源码,跑酷游戏源码,塔防游戏源码
  6. 2的99次方用计算机,神奇的平方计算口诀!让孩子秒变计算机!
  7. rrpp协议如何修改_RRPP 演示实例
  8. 小人有三种,这种最阴险,最好策略不是硬杠
  9. 示波器两个重要参数 - 带宽、采样率
  10. Java开发者,我到底要不要学大数据开发?