UVa12230

来源:互联网 发布:日历制作软件 编辑:程序博客网 时间:2024/06/10 21:37

题目链接

简介:
有个人去上班的路上会经过N条河,家和公司的距离为D,默认在陆地的速度为1,给出N条河的信息,包括起始坐标p,宽度L,以及船的速度。船会往返在河的两岸,人到达河岸是,船的位置是随机的(包括方向)。问达到公司所需要的期望时间。

分析:
人在路上花费的时间是一定的:D-sum(L)
当我们到达了河边之后,最好的情况是船正好靠岸,这时候只需要L/v的时间即可
最坏情况是船刚刚离开,我们到达对岸所需的时间就是3L/v

其余情况都是在这个范围之间的
数学期望在一定程度上和平均数一样(等概率)
这道题中,我们通过一条河的时间期望就是(L/v+3L/v)/2=2L/v

所以答案就是Σ2*Li/vi+D-sum(L)

//这里写代码片#include<cstdio>#include<cstring>#include<iostream>using namespace std;int n,D;int main(){    int cnt=0;    while (scanf("%d%d",&n,&D)!=EOF&&D)    {        int S,L,v;        double sum=0;        for (int i=1;i<=n;i++)        {            scanf("%d%d%d",&S,&L,&v);            D-=L;             //需要行走的时间             sum+=(double)2*L/v;        }        printf("Case %d: %0.3lf\n",++cnt,sum+(double)D);        printf("\n");    }    return 0;}
原创粉丝点击