hdu 3232 Crossing Rivers

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


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章