P1639 [USACO18FEB] Teleportation B 题解

题意简述

给定起点 a,终点 b,以及可以互相直达的两点 xy。求从 ab 的最短路程。

思路简述

不难想到,从 a 点到 b 点一共有三种方式:

  1. 直接从 a 走到 b。路程为:|ab|
  2. a 走到 x,传送到 y,再从 y 走到 b。路程为:|ax|+|yb|
  3. a 走到 y,传送到 x,再从 x 走到 b。路程为:|ay|+|xb|

直接按照三种方式模拟即可。

代码

#include <bits/stdc++.h>
using namespace std;

int a, b, x, y;

int main(){
    cin >> a >> b >> x >> y;
    cout << min(abs(x - a) + abs(y - b), min(abs(b - a), abs(x - b) + abs(y - a)));
    return 0;
}
posted @   Floze3  阅读(99)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 地球OL攻略 —— 某应届生求职总结
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 提示词工程——AI应用必不可少的技术
· .NET周刊【3月第1期 2025-03-02】
点击右上角即可分享
微信分享提示