UVa 12230 Crossing Rivers (数学期望水题)

Posted dwtfukgv

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了UVa 12230 Crossing Rivers (数学期望水题)相关的知识,希望对你有一定的参考价值。

题意:你要从A到B去上班,然而这中间有n条河,距离为d。给定这n条河离A的距离p,长度L,和船的移动速度v,求从A到B的时间的数学期望。

并且假设出门前每条船的位置是随机的,如果不是在端点,方向也是不定的,你在陆地行走速度为1,输入保证河在AB之前,并且不会重叠。

析:一看这个题,好像不会啊。。。这怎么求,这么乱,这么复杂。。。

但是仔细一想求时间期望,不就是在过河的地方时间不是固定的么,只要求出过河的时间的数学期望,利用数学期望的线性,加起来就OK了。

这样一想感觉就不乱了,那么怎么求每个河的时间呢,题目说了都是船都是随机的,可以认为是等概率的,那么过河的最短时间就是L/v,正好到河边船正好过来,

最长时间就是3*L/v,也就是他刚到河边,船刚走,最后再加上在陆地的时间就OK了。

代码如下:

#include <iostream>
#include <cstring>
#include <vector>
#include <algorithm>
#include <cstdio>

using namespace std;

int main(){
    int n, d, kase = 0;
    while(scanf("%d %d", &n, &d)){
        if(!d && !n)  break;
        double ans = (double)d;
        for(int i = 0; i < n; ++i){
            double p, l, v;
            scanf("%lf %lf %lf", &p, &l, &v);
            ans = ans - l + 2 * l / v;//由于在陆地的速度是1,所以不用除了
        }

        printf("Case %d: %.3lf\n\n", ++kase, ans);
    }
    return 0;
}

 

以上是关于UVa 12230 Crossing Rivers (数学期望水题)的主要内容,如果未能解决你的问题,请参考以下文章

Uva12230Crossing Rivers (数学期望)

『UVA 12230』Crossing Rivers (简单期望)

uva 12230 Crossing Rivers

UVa 12230 - Crossing Rivers(数学期望)

UVA.12230.Crossing Rivers(期望)

UVA12230 过河 Crossing Rivers