1 条题解

  • 0
    @ 2026-5-19 9:44:00

    题意简述

    给定起点 aa,终点 bb,以及可以互相直达的两点 xxyy。求从 aabb 的最短路程。

    思路简述

    不难想到,从 aa 点到 bb 点一共有三种方式:

    1. 直接从 aa 走到 bb。路程为:ab\left| a - b \right|
    2. aa 走到 xx,传送到 yy,再从 yy 走到 bb。路程为:ax+yb\left| a - x \right| + \left| y - b \right|
    3. aa 走到 yy,传送到 xx,再从 xx 走到 bb。路程为:ay+xb\left| a - y \right| + \left| x - b \right|

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

    代码

    #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;
    }
    
    • 1

    【模拟】传送[USACO18FEB] Teleportation B

    信息

    ID
    6799
    时间
    1000ms
    内存
    256MiB
    难度
    4
    标签
    递交数
    30
    已通过
    17
    上传者