[USACO07DEC]Mud Puddles S

这篇具有很好参考价值的文章主要介绍了[USACO07DEC]Mud Puddles S。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

[USACO07DEC]Mud Puddles S

题目描述

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.

第1行: 3个用空格隔开的整数:X,Y 和 N

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

第2..N+1行: 第i+1行为2个用空格隔开的整数:A_i 和 B_i

输出格式

* Line 1: The minimum distance that Farmer John has to travel to reach Bessie without stepping in mud.文章来源地址https://www.toymoban.com/news/detail-427285.html

第1行: 输出1个整数,即FJ在不踏进泥塘的情况下,到达贝茜所在牛棚所需要 走过的最小距离

样例

样例输入

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

样例输出

11



代码

#include <bits/stdc++.h>
using namespace std;
struct Node{
	int x,y,dis;
};
queue<Node> q;
bool m[1001][1001];
int x,y,n;
const int dx[4]={-1,0,1,0};
const int dy[4]={0,1,0,-1};
bool f(int x,int y)
{
	return x<-500||x>500||y<-500||y>500||m[x+500][y+500];
}
void bfs()
{
	q.push({0,0,0});
	while(!q.empty())
	{
		int nx=q.front().x,ny=q.front().y,val=q.front().dis;
		q.pop();
		if(f(nx,ny)) continue;
		m[nx+500][ny+500]=1;
		if(nx==x&&ny==y)
		{
			cout << val << endl;
			return;
		}
		for(int i=0;i<4;i++)
		{
			q.push({nx+dx[i],ny+dy[i],val+1});
		}
	}
}
int main()
{
	cin >> x >> y >> n;
	while(n--)
	{
		int X,Y;
		cin >> X >> Y;
		m[X+500][Y+500]=1;
	}
	bfs();
	return 0;
}

到了这里,关于[USACO07DEC]Mud Puddles S的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • P3405 [USACO16DEC] Cities and States S

    Farmer John 有若干头奶牛。为了训练奶牛们的智力,Farmer John 在谷仓的墙上放了一张美国地图。地图上表明了每个城市及其所在州的代码(前两位大写字母)。 由于奶牛在谷仓里花了很多时间看这张地图,他们开始注意到一些奇怪的关系。例如,FLINT 的前两个字母就是 MIAMI 所

    2024年03月20日
    浏览(66)
  • P2921 [USACO08DEC] Trick or Treat on the Farm G

    Portal. 每只奶牛的终止条件是到达自己已经访问过的点,换言之,就是该奶牛的路线构成了一个环。并且,每一个房间通往的房间都是固定且唯一的,所以说只要进入的这个房间在环上,这个房间之后会获得的糖果数已经固定了。 我们开一个数组 s 记录当前位置的糖果数量,

    2024年02月06日
    浏览(235)
  • 某软件的一个模块的需求规格说明书中描述【软件测试题目】

    某软件的一个模块的需求规格说明书中描述 (1)年薪制员工:严重过失,扣年终风险金的4%;过失,扣年终风险金的2% (2)非年薪制员工:严重过失,扣除当月薪资的8%;过失,扣除当月薪资的4% (1)分析原因及结果 原因 c1:年薪制员工 c2:非年薪制员工 c3:过失 c4:严重过失

    2024年02月08日
    浏览(48)
  • 额外题目第2天|234 143 141 面试题02.07相交链表 205

    234 先计数List有多长 将前一半放在一个stack里面 如果奇数就跳过中间node 接着比较节点值与stack里面的数 遇到不同的就return false 直到比较完就true 143 反转list的后面一半 再将两个list穿插合并在一起 141 之前做过一题找环形入口的 这题更简单 记得用快慢指针做就可以了! 面试

    2024年02月15日
    浏览(43)
  • [青少年CTF]CheckMe06-07|PingMe02|2048|简简单单的题目|BASE

    使用字典对登录界面爆破 19861022 qsnctf{e2251e65-c5dd-4018-9de9-0bba832aeb44}   该题使用万能密码即可 admin\\\' or 1=1# qsnctf{a2879a99-1bbe-4602-aa55-4ef65f2d7089}   Payload:?ip=127.0.0.1|more%09/f* qsnctf{dae90dc4-4a3c-49d8-bd0a-76c6647070bb}   这题在源代码中找到 将它复制到js在线运行一下弹窗获得flag qsnctf{2a386

    2024年02月21日
    浏览(44)
  • 数据结构学习记录——树习题—Tree Traversals Again(题目描述、输入输出示例、解题思路、解题方法C语言、解析)

    目录 题目描述 输入示例 输出示例 解题思路  解题方法(C语言) 解析 有序的二叉树遍历可以用堆栈以非递归的方式实现。 例如: 假设遍历一个节点数为6的二叉树(节点数据分别为1到6)时, 堆栈操作为:push(1);push(2);push(3);pop();pop();push(4);pop()

    2024年02月07日
    浏览(46)
  • 【LeetCode题目详解】24.两两交换链表中的节点19.删除链表的倒数第N个节点 面试题 02.07. 链表相交 142.环形链表II day4(补)

      给定一个链表,两两交换其中相邻的节点,并返回交换后的链表。 你不能只是单纯的改变节点内部的值,而是需要实际的进行节点交换。 这道题建议使用 虚拟头结点 ,这样会方便很多,要不然每次针对头结点(没有前一个指针指向头结点),还要单独处理。 接下来就是

    2024年02月15日
    浏览(40)
  • openssl3.2 - 官方demo学习 - cms - cms_dec.c

    对用证书加密的CMS数据进行解密(也需要加密时用的那个证书)

    2024年01月20日
    浏览(37)
  • ArmSoM-RK3588编解码之mpp解码demo解析:mpi_dec_test

    [RK3588从入门到精通] 专栏总目录 mpi_dec_test 是rockchip官方解码 demo 本篇文章进行mpi_dec_test 的代码解析,解码流程解析 硬件环境: ArmSoM-W3 RK3588开发板 软件版本: OS:ArmSoM-W3 Debian11 mpp_create :获取 MppCtx 实例以及 MppApi 结构体 mpp_init: 初始化MppCtx 的编解码类型与格式 mpi-control:

    2024年02月04日
    浏览(49)
  • [Usaco2009 Oct]Heat Wave 热浪

    题目描述 有一个 n个点 m 条边的无向图,请求出从 s 到 t 的最短路长度。 输入格式第一行四个正整数 n, m, s, t。 接下来 m 行,每行三个正整数 u, v, w,表示一条连接 u, v 长为 w 的边。 1≤n≤2500,1≤m≤6200,1≤w≤1000。 输出格式 输出一行一个整数,表示答案。 样例输入 样例

    2024年02月14日
    浏览(30)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包