码迷,mamicode.com
首页 > 其他好文 > 详细

UVa 12230 (期望) Crossing Rivers

时间:2014-12-23 00:05:27      阅读:209      评论:0      收藏:0      [点我收藏+]

标签:

题意:

从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

标签:

原文地址:http://www.cnblogs.com/AOQNRMGYXLMV/p/4179155.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!