題目鏈接: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;
}