Uva12230Crossing Rivers (数学期望)

问题:

You live in a village but work in another village. You decided to follow the straight path between your house (A) and the working place (B), but there are several rivers you need to cross. Assume B is to the right of A, and all the rivers lie between them. Fortunately, there is one “automatic” boat moving smoothly in each river. When you arrive the left bank of a river, just wait for the boat, then go with it. You’re so slim that carrying you does not change the speed of any boat.

Days and days after, you came up with the following question: assume each boat is independently placed at random at time 0, what is the expected time to reach B from A? Your walking speed is always 1. To be more precise, for a river of length L, the distance of the boat (which could be regarded as a mathematical point) to the left bank at time 0 is uniformly chosen from interval [0, L], and the boat is equally like to be moving left or right, if it’s not precisely at the river bank.

Input

There will be at most 10 test cases. Each case begins with two integers n and D, where n (0 ≤ n ≤ 10) is the number of rivers between A and B, D (1 ≤ D ≤ 1000) is the distance from A to B. Each of the following n lines describes a river with 3 integers: p, L and v (0 ≤ p < D, 0 < L ≤ D, 1 ≤ v ≤ 100). p is the distance from A to the left bank of this river, L is the length of this river, v is the speed of the boat on this river. It is guaranteed that rivers lie between A and B, and they don’t overlap. The last test case is followed by n = D = 0, which should not be processed.

Output

For each test case, print the case number and the expected time, rounded to 3 digits after the decimal point. Print a blank line after the output of each test case.

Sample Input

1 1

0 1 2

0 1

0 0

Sample Output

Case 1: 1.000

Case 2: 1.000

题目大意:

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

思路:

过每条河最坏的情况是t=3*L/v; 即去的时候船刚刚走。

过没条河最优的情况是t=L/v;    即去的时候船刚刚来。

由于船是均匀发布的,符合线性性质,所以平均下来,过每条河的时间t=2*L/v。

#include<cstdio>
#include<cstdlib>
#include<iostream>
using namespace std;
int main()
{
    int n,D,dis,p,l,v,Case=0;
    double ans;
    while(~scanf("%d%d",&n,&D)){
        if(n==0&&D==0) return 0;
        dis=0;ans=0;
        while(n--){
            scanf("%d%d%d",&p,&l,&v);
            ans=ans+2.0*l/v;
            D-=l;
        }
        ans=ans+1.0*D;
        printf("Case %d: %.3lf\n\n",++Case,ans);
    }
    return 0;
}
时间: 2024-08-04 06:15:06

Uva12230Crossing Rivers (数学期望)的相关文章

HDU3232 Crossing Rivers 数学期望问题

Crossing Rivers                                                                                      Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Problem Description You live in a village but work in another vil

Uva12230Crossing Rivers 数学

Uva12230Crossing Rivers 问题: You live in a village but work in another village. You decided to follow the straight path between your house (A) and the working place (B), but there are several rivers you need to cross. Assume B is to the right of A, an

Uva - 12230 Crossing Rivers (数学期望)

你住在村庄A,每天需要过很多条河到另一个村庄B上班,B在A的右边,所有的河都在A,B之间,幸运的是每条船上都有自由移动的自动船, 因此只要到达河左岸然后等船过来,在右岸下船,上船之后船的速度不变.现在问从A到B的期望时间是多少,假设在出发时船的位置都是 随机分布.人在 陆地上行走的速度为1. 根据数学期望的线性,过每条河的时间为L/v(到河边船刚好开)到3L/v(到河边船刚好开走)的均匀分布,因此期望过河时间为 (L+3L/v)/2=(2*L/v) 加上 D-sum(L) . 1 #includ

UVa12230 - Crossing Rivers (数学期望)

题意:给你A和B的距离,以及途中n条河的信息,问你从A到B的期望 思路:我们单纯算过河时间的话,最快的是l/v,最慢的可能是3l/v,期间的时间是线性的,所以期望就是4l/2v=2l/v #include<iostream> #include<cstring> #include<algorithm> #include<cstdio> int main() { int n; double p,l,v,d; int cas=1; while(scanf(&quo

uva 12230 - Crossing Rivers(求数学期望)

利用了数学期望的线性性质:有线个随机变量之和的数学期望的关于每个随机变量的期望之和: 由于过每条河的时间为L / V和3L / V的均匀分布,因此期望过河时间为2L / V. #include<cstdio> #include<cstring> #include<algorithm> using namespace std; int n;double d; int main() { int kase=0; while(scanf("%d%lf",&a

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

题意:你要从A到B去上班,然而这中间有n条河,距离为d.给定这n条河离A的距离p,长度L,和船的移动速度v,求从A到B的时间的数学期望. 并且假设出门前每条船的位置是随机的,如果不是在端点,方向也是不定的,你在陆地行走速度为1,输入保证河在AB之前,并且不会重叠. 析:一看这个题,好像不会啊...这怎么求,这么乱,这么复杂... 但是仔细一想求时间期望,不就是在过河的地方时间不是固定的么,只要求出过河的时间的数学期望,利用数学期望的线性,加起来就OK了. 这样一想感觉就不乱了,那么怎么求每个河的

UVa 12230 - Crossing Rivers(数学期望)

链接: https://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem&problem=3382 题意: 你住在村庄A,每天需要过很多条河到另一个村庄B上班.B在A的右边,所有的河都在中间.幸运的是,每条河上都有匀速移动的自动船,因此每当到达一条河的左岸时,只需等船过来,载着你过河,然后在右岸下船.你很瘦,因此上船之后船速不变.日复一日,年复一年,你问自己:从A到B,平均

数学期望

数学期望又称均值(加权均值),例如 甲8环,9环,10环的概率分别为0.1,0.8,0.1,即权重,则加权均值为8*0.1+9*0.8+10*0.1=9:同理乙的加权均值为8.95 则甲的平均成绩优于乙 对于离散型随机变量 连续型随机变量

数学1——概率与数学期望

1.什么是数学期望? 数学期望亦称期望.期望值等.在概率论和统计学中,一个离散型随机变量的期望值是试验中每一次可能出现的结果的概率乘以其结果的总和. 这是什么意思呢?假如我们来玩一个游戏,一共52张牌,其中有4个A.我们1元钱赌一把,如果你抽中了A,那么我给你10元钱,否则你的1元钱就输给我了.在这个游戏中,抽中的概率是$\frac{1}{13} ( \frac{4}{52} ) $,结果是赢10元钱:抽不中概率是$\frac{12}{13}$,结果是亏1元钱.那么你赢的概率,也就是期望值是$-