首页 > 代码库 > UVa 12230 (期望) Crossing Rivers
UVa 12230 (期望) Crossing Rivers
题意:
从A到B两地相距D,之间有n段河,每段河有一条小船,船的位置以及方向随机分布,速度大小不变。每段河之间是陆地,而且在陆地上行走的速度为1.求从A到B的时间期望。
分析:
我们只要分析每段河的期望即可。设河的长度为L,船速为v。过河最短时间为刚好搭上从左向右开的小船L/v;最长时间为刚好没搭上从左向右开的小船,所以要等小船开到对岸再折返回来再到对岸,时间为3L/v,因为是均匀分布,所以期望为2L/v,最后再加上陆地上行走的时间就是答案。
1 #include <cstdio> 2 3 int main() 4 { 5 int n, D, kase = 0; 6 while(scanf("%d%d", &n, &D) == 2) 7 { 8 if(n == 0 && D == 0) break; 9 int L, v, p;10 int sumL = 0;11 double ans = 0.0;12 for(int i = 0; i < n; ++i)13 {14 scanf("%d%d%d", &p, &L, &v);15 sumL += L;16 ans += 2.0 * L / v;17 }18 ans += D - sumL;19 20 printf("Case %d: %.3f\n\n", ++kase, ans);21 }22 23 return 0;24 }
UVa 12230 (期望) Crossing Rivers
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。