概率dp



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

 

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

 

 

#include <bits/stdc++.h>
using namespace std;
int n;
double d;
int main()
{
    double p,l,v;
    int cnt=1;
 while(~scanf("%d%lf",&n,&d)){
     if(n+d==0) break;
     double sum = 0.0,ret =0.0;
     for(int i =0;i<n;i++){
         scanf("%lf%lf%lf",&p,&l,&v);
         sum+=l;
         ret+=2.0*l/v;
     }    
     ret+=(d-sum);
     //会自动四舍五入的
     printf("Case %d: %.3f\n\n",cnt++,ret);//再输出一个空行
 }
 return 0;
}

 

 

 

 

 

posted on 2019-04-08 22:31  cltt  阅读(110)  评论(0编辑  收藏  举报

导航