Uva - 12230 Crossing Rivers (数学期望)

时间:2021-05-06 14:59:56

你住在村庄A,每天需要过很多条河到另一个村庄B上班,B在A的右边,所有的河都在A,B之间,幸运的是每条船上都有*移动的自动船,

因此只要到达河左岸然后等船过来,在右岸下船,上船之后船的速度不变.现在问从A到B的期望时间是多少,假设在出发时船的位置都是

随机分布.人在 陆地上行走的速度为1.

根据数学期望的线性,过每条河的时间为L/v(到河边船刚好开)到3L/v(到河边船刚好开走)的均匀分布,因此期望过河时间为 (L+3L/v)/2=(2*L/v) 加上 D-sum(L) .

 1 #include <cstdio>
 2 #include <cstring>
 3 int main()
 4 {
 5     int n,d,p,l,v,s,j=1;
 6     double sum;
 7     while(~scanf("%d%d",&n,&d))
 8     {
 9         if(n==0&&d==0) break;
10         sum=0;
11         s=0;
12         for(int i=0;i<n;i++)
13         {
14             scanf("%d%d%d",&p,&l,&v);
15             sum+=2.0*l/v;
16             s+=l;
17         }
18         printf("Case %d: %.3lf\n\n",j++,sum+(d-s));
19     }
20     return 0;
21 }