HDU-#3232 Crossing Rivers(期望+概率论)

      题目大意:给出住所A和工作B两点之间的距离为d,在两者之间有n条河流。不过每条河流都有一艘自动船,把船看着数学上的点,速度为v,河流宽度为L。再给出A到河左边缘距离为p,求从A到B的花费平均时间,即期望。

      解题思路:这是一个期望的问题,首先分为两部分:一是在陆地的行走世间,由总距离为d,行走速度为1,则陆地世间花费等于d减去所有河的宽度之和;二是看在河上的花费时间,由于船在0时刻的位置是任意的,因此满足均匀分布,则期望为E1=1/2*(l+r)=1/2L,船向左和向右的概率相等为1/2,则向左的花费为1/2*((L/2)/v),向右为1/2*((L+L/2)/v),最后从左岸到达右岸的共同花费为L/v.综上在河上的花费等于这三部分之和为2*L/v。因此从A到B的期望为2*L/v+d-L(河)。

      题目来源:http://acm.hdu.edu.cn/showproblem.php?pid=3232

     code:

#include <iostream>
#include <cstdio>
using namespace std;

int n,d,k;
double p,l,v,ans;

int main(){
    k=1;
    while(scanf("%d%d",&n,&d)!=EOF && (n||d)){
        ans=(double)d;
        for(int i=0;i<n;i++){
            scanf("%lf%lf%lf",&p,&l,&v);
            ans-=l; //陆地的时间花费=d-减去所有河的宽度
            ans+=2.0*l/v; //河上的时间花费
        }
        printf("Case %d: %.3lf\n",k++,ans);
        printf("\n");
    }
    return 0;
}


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值