题目链接
首先如果全部步行则期望为D,现在每遇到一条河,求过河时间的期望,等待时间的区间为(0,2*L/v),船在每个地方都是等可能的,所以等待的期望就是(0 + 2*L/v) / 2 = L / v,又过河还要L / v,所以总的渡河期望值为2 * L / v,所以每遇到一条河拿D减去假设步行过河的期望L再加上实际过河期望2 * L / v即可
#include<cstdio>
int main()
{
//freopen("in.txt","r",stdin);
int n;
double d;
int ca=1;
while(scanf("%d %lf",&n,&d)!=EOF&&(n+d))
{
double p,l,v;
for(int i=0;i<n;i++)
{
scanf("%lf %lf %lf",&p,&l,&v);
d=d-l+2.0*l/v;
}
printf("Case %d: %.3f\n\n",ca++,d);
}
return 0;
}