首页 > 其他 > 详细

【题解】Ride to Office

时间:2019-05-26 12:38:07      阅读:155      评论:0      收藏:0      [点我收藏+]

题目描述

         起点与终点相隔4500米。现Charley 需要从起点骑车到终点。但是,他有个习惯,沿途需要有人陪伴,即以相同的速度, 与另外一个人一起骑。而当他遇到以更快的速度骑车的人时,他会以相应的速度跟上这个更快的人。先给定所有与Charley 同路的人各自的速度与出发时间,问Charley 以这种方式跟人,骑完4500米需要多少时间。得出的结果若是小数,则向上取整。

 

输入格式

        输入若干组数据,每组数据第一行n(1≤n≤10000),n为0,表示输入结束,接着输入n行数据,每行2个数据,表示速度v和出发时间t,如果t<0,表示陪伴人提早出发了。

 

输出格式

        输出对应若干行数据,每行输出1个数,表示最快到达的时间。

 

输入样例

4

20 0

25 -155

27 190

30 240

2

21 0

22 34

0

 

输出样例

780

771

 

题解

        容易想到,你在中途去跟另一个人,就是就相当于从起点到终点都一直跟那个人,那直接输入后算到达终点的时间,取最小值即可。

        (提醒,这题的$v$单位是$km/h$)

技术分享图片
#include <iostream>
#include <cstdio>
#include <cmath>

using namespace std;

int n;
int t;
double v;
int ans;

int main()
{
    int tmp;
    while(scanf("%d", &n) && n)
    {
        ans = 0x7f7f7f7f;
        while(n--)
        {
            scanf("%lf%d", &v, &t);
            if(t < 0) continue;
            ans = min(ans, (int)ceil(4500.0 / (v / 3.6)) + t);
        }
        cout << ans << "\n";
    }
    return 0;
}
参考程序

 

【题解】Ride to Office

原文:https://www.cnblogs.com/kcn999/p/10925559.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!