概率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; }