概率DP——UVA12230 Crossing Rivers

版权声明:低调地前行,越努力越幸运! https://blog.csdn.net/SSYITwin/article/details/83625573

UVA12230 Crossing Rivers

1.题目大意:

   有个人每天要去公司上班,每次会经过N条河,家和公司的距离为D,默认在陆地的速度为1, 给出N条河的信息,包括起始坐标p,宽度L,以及船的速度v。船会往返在河的两岸,人到达河岸时, 船的位置是随机的(往返中)。问说人达到公司所需要的期望时间。

2.思路:

  2.1,过每条河最坏的情况是t=3*L/v; 即去的时候船刚刚走。

  2.2,过没条河最优的情况是t=L/v; 即去的时候船刚刚来。

  2.3,由于船是均匀发布的,符合线性性质,所以平均下来,过每条河的时间t=2*L/v。

#include <iostream>
#include<cstdio>
#include<algorithm>
using namespace std;
int main()
{
    int n, D;
    int r = 0;
    while (~scanf("%d%d",&n,&D))
    {   
    	if(n==0&&D==0) break;
        double ans = 0;
        while (n--)
        {
            int p, L, v;
            cin >> p >> L >> v;
            D -= L; 
            ans += 2.0*L/v; 
        }

        printf("Case %d: %.3lf\n\n", ++r,ans+D);
    }

    return 0;
}

猜你喜欢

转载自blog.csdn.net/SSYITwin/article/details/83625573