HDU6581 Vacation(思维)

题意:

Tom和Jerry在度假,他们在一条单行路上,有一些车在他们前面,第i辆车长度为li,它的头离停止线Si,最大速度Vi。

Tom和Jerry的车长L0,距离停止线S0,速度V0.他们必须保持低于前面那辆车的速度。但如果前面没有车,就可以开到最大的速度。

他们想知道他们通过红绿灯的最短时间。

题解:

模拟一遍每辆车的速度通过红绿灯需要多少时间,取最大值(雾)

#include<cstdio>
#include<algorithm>
#include<cstring>
using namespace std;
const int maxn=1e5+15;
typedef long long ll;
int s[maxn];
int v[maxn];
int l[maxn];
int main () {
    int N;
    while (~scanf("%d",&N)) {
        for (int i=0;i<=N;i++)
            scanf("%d",&l[i]);
        for (int i=0;i<=N;i++)
            scanf("%d",&s[i]);
        for (int i=0;i<=N;i++)
            scanf("%d",&v[i]);
        double ans=s[0]*1.0/v[0];
        ll sum=0;
        for (int i=1;i<=N;i++) {
            sum+=l[i];
            ans=max((sum+s[i]*1.0)/v[i],ans);
        }
        printf("%.10f\n",ans);
    }
    return 0;
}

 

posted @ 2020-03-14 20:33  zlc0405  阅读(88)  评论(0编辑  收藏  举报