1 条题解

  • 0
    @ 2025-8-24 22:51:17

    自动搬运

    查看原文

    来自洛谷,原作者为

    avatar zhouweixi0
    **

    搬运于2025-08-24 22:51:17,当前版本为作者最后更新于2023-10-09 21:39:35,作者可能在搬运后再次修改,您可在原文处查看最新版

    自动搬运只会搬运当前题目点赞数最高的题解,您可前往洛谷题解查看更多

    以下是正文


    题意

    题目传送门

    这是一道模拟题。

    会发生两种事件:

    • Patrik 事件 第 ii 个车站花费的时间为 tt

    • Josip 事件 从第 yy 个车站到这里花费的时间为 tt

    我们定义一个数组 aaaia_i 表示第 ii 个车站所花费的时间。

    若发生 Patrik 事件,就将所花费的时间赋值给 aia_i

    若发生 Josip 事件,就将 aia_i 赋值为 ay+ta_y+t

    最后,将数组中两个相邻车站之间距离最小的找出,记录下表,并输出即可。

    代码

    #include<bits/stdc++.h>
    using namespace std;
    int n,t,y,a[1010];
    int minn=2147483647,ans;
    string s;
    int main(){
        cin>>n;
        for(int i=2;i<=n;i++){//记得从2开始
            cin>>s;
            if(s=="Patrik"){
                cin>>t;
                a[i]=t;
            }
            else{
                cin>>y>>t;
                a[i]=a[y]+t;
            }
        }
        for(int i=2;i<=n;i++){//取最小值
            if(a[i]-a[i-1]<minn){
                minn=a[i]-a[i-1];
                ans=i;
            }
        }
        cout<<minn<<" "<<ans-1<<" "<<ans;//输出
        return 0;
    }
    
    • 1

    信息

    ID
    9269
    时间
    1000ms
    内存
    512MiB
    难度
    2
    标签
    递交数
    0
    已通过
    0
    上传者