题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=3232
2009 Asia Wuhan Regional Contest Hosted by Wuhan University
题意:题意很清楚,一个人叫acmer吧,要从A点到B点,中间有n条河流,现给出acmer在陆地的速度恒为1,河流的宽度与船在此河流中的速度及河流的位置。
题中说明河流都一定在A、B点之间,并且不会重叠。船初始的位置是随机的。要求求出acmer从A到B用时的期望(就是平均值)。
分析:其实经过简单分析就发现,给出河流的位置没有用,我们只需要记录一下所有河流的总宽度,便可算出在陆地的用时t1,这个用时是不变的,对期望没有影响。然后计算acmer分别在每个河流的平均用时,平均用时的求法是先算出船在河流中出现的所有情况的期望点是L/2处,向左右走的概率是想等的,到达左岸的两种情况平均距离是L,所以过河的平均距离是2L。
代码很简单,参考如下:
#include<iostream>
#include<cstdio>
#include<cstring>
#include<cmath>
using namespace std;
int main()
{
int n,d,casenum = 1;
while(scanf("%d%d",&n,&d) && n+d)
{
int p,l,v;
double exp = d;
for(int i = 0;i < n;++i)
{
scanf("%d%d%d",&p,&l,&v);
{
exp -= l;
exp += 2.0*l/v;
}
}
printf("Case %d: %.3lf\n\n",casenum++,exp);
}
return 0;
}
本文详细解析了HDU 3232题目,该题为亚洲武汉地区大学生程序设计竞赛的一部分,主要探讨了如何通过分析问题,运用数学期望和概率理论解决涉及河流和陆地速度的问题。通过简化问题,计算在不同条件下的平均时间,最终求得从起点到终点的期望时间。
4277

被折叠的 条评论
为什么被折叠?



