【UVA12230】Crossing Rivers(概率/期望)

版权声明:转载请注明出处哦~ https://blog.csdn.net/Cassie_zkq/article/details/89280492

题目地址:https://www.luogu.org/problemnew/show/UVA12230

文字源自:https://www.cnblogs.com/hua-dong/p/8166093.html

题意


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

解题思路


1,过每条河最坏的情况是t=3*L/v; 即去的时候船刚刚走。
2,过没条河最优的情况是t=L/v;    即去的时候船刚刚来。
3,由于船是均匀发布的,符合线性性质,所以平均下来,过每条河的时间t=2*L/v

ac代码


#include <iostream>
#include <algorithm>
#include <string.h>
#include <ctype.h>
#include <set>
#include <cmath>
#include <queue>
#include <stack>
#include <map>
#include <sstream>
#define  maxn 10005
typedef long long ll;
using namespace std;
int main()
{
    //freopen("/Users/zhangkanqi/Desktop/11.txt","r",stdin);
    int cnt=1,p,l,v,D,n;
    while(scanf("%d %d",&n,&D))
    {
        if(n==0&&D==0) break;
        double ans=0;
        while(n--)
        {
            scanf("%d %d %d",&p,&l,&v);
            ans+=(2.0)*l/v;
            D-=l;
        }
        ans+=1.0*D;
        printf("Case %d: %.3lf\n\n",cnt++,ans);
    }
    return 0;
}

猜你喜欢

转载自blog.csdn.net/Cassie_zkq/article/details/89280492
今日推荐