链接:

https://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem&problem=3382

题意:

你住在村庄A,每天需要过很多条河到另一个村庄B上班。B在A的右边,所有的河都在中间。
幸运的是,每条河上都有匀速移动的自动船,因此每当到达一条河的左岸时,
只需等船过来,载着你过河,然后在右岸下船。你很瘦,因此上船之后船速不变。
日复一日,年复一年,你问自己:从A到B,平均情况下需要多长时间?假设在出门时所有船的位置都是均匀随机分布。
如果位置不是在河的端点处,则朝向也是均匀随机。在陆地上行走的速度为1。
输入A和B之间河的个数n、长度D(0≤n≤10,1≤D≤1000),以及每条河的左端点坐标离A的距离p,
长度L和移动速度v(0≤p<D,0<L≤D,1≤v≤100),输出A到B时间的数学期望。
输入保证每条河都在A和B之间,并且相互不会重叠。

分析:

用数学期望的线性。过每条河的时间为L/v到3L/v的均匀分布,因此期望过河时间为2L/v。
把所有2L/v加起来,再加上D-sum(L)即可。

代码:

 #include <cstdio>

 int main() {
int n, D, p, L, v;
for(int cases = ; scanf("%d%d", &n, &D) && D; cases++) {
double ans = D;
for(int i = ; i < n; i++) {
scanf("%d%d%d", &p, &L, &v);
ans -= L;
ans += 2.0 * L / v;
}
printf("Case %d: %.3f\n\n", cases, ans);
}
return ;
}

UVa 12230 - Crossing Rivers(数学期望)的更多相关文章

  1. Uva - 12230 Crossing Rivers (数学期望)

    你住在村庄A,每天需要过很多条河到另一个村庄B上班,B在A的右边,所有的河都在A,B之间,幸运的是每条船上都有自由移动的自动船, 因此只要到达河左岸然后等船过来,在右岸下船,上船之后船的速度不变.现在 ...

  2. UVA - 12230 Crossing Rivers (期望)

    Description You live in a village but work in another village. You decided to follow the straight pa ...

  3. UVA - 12230 Crossing Rivers 概率期望

    You live in a village but work in another village. You decided to follow the straight path between y ...

  4. UVA 12230 - Crossing Rivers(概率)

    UVA 12230 - Crossing Rivers 题目链接 题意:给定几条河,每条河上有来回开的船,某一天出门,船位置随机,如今要求从A到B,所须要的期望时间 思路:每条河的期望,最坏就是船刚开 ...

  5. HDU3232 Crossing Rivers 数学期望问题

    Crossing Rivers                                                                                     ...

  6. UVA.12230.Crossing Rivers(期望)

    题目链接 /* 到达一条河时,船在河中的位置是随机的,所以船到达岸边需要的时间在 0~2l/v 均匀分布,所以船到岸的期望为 (0+2l/v)/2 过河需要 l/v 的时间,所以过一条河总的期望为 ( ...

  7. UVA - 12230 Crossing Rivers(过河)(期望)

    题意:从A到B需要经过n条河,已知AB间距离D和每条河的长度L以及在该条河上的船速v,求A到B平均情况下需多长时间.陆地行走速度为1,船的位置和朝向均匀随机. 分析: 1.过一条河,最短时间L/v(无 ...

  8. UVA 12230 Crossing Rivers

    嘟嘟嘟 虽然分类是期望dp,不过好像是最水的 因为在陆地上的时间和概率是固定的,所以只用考虑过河的期望时间. 对于一条河p, l, v,p好像没什么用……不管了,首先期望时间我觉得可以这么算:期望时间 ...

  9. UVA12230 Crossing Rivers (数学期望)

    题目链接 题意翻译 一个人每天需要从家去往公司,然后家与公司的道路是条直线,长度为 \(D\). 同时路上有 \(N\) 条河,给出起点和宽度\(W_i\) , 过河需要乘坐速度为\(V_i\) 的渡 ...

随机推荐

  1. Java学习--使用 Math 类操作数据

    使用 Math 类操作数据 Math 类位于 java.lang 包中,包含用于执行基本数学运算的方法, Math 类的所有方法都是静态方法,所以使用该类中的方法时,可以直接使用类名.方法名,如: M ...

  2. 小菜庄园 Spring------图片的上传和下载

    1.图片的上传前台三个条件 文件上传页面的3个要求:            < 1.表单提交为post.mothod="post"            < 2.表单的 ...

  3. 认识Groovy

    什么是groovy: Groovy 是 JVM 的一个替代语言 —替代 是指可以用 Groovy 在 Java 平台上进行 Java 编程,使用方式基本与使用 Java 代码的方式相同. 在编写新应用 ...

  4. libevent学习笔记 —— 第一个程序:计时器

    用libevent写个定时器其实步骤不多: 1.初始化libevent 2.设置事件 3.添加事件 4.进入循环 由于定时事件触发之后,默认自动删除,所以如果要一直计时,则要在回调函数中重新添加定时事 ...

  5. 13 Reasons Why You Should Pay Attention to Mobile Web Performance

    Mobile is no longer on the sidelines. If you’re not already thinking mobile first, you should at lea ...

  6. Maven学习总结(七):Maven的聚合和继承

    一.聚合 如果我们想一次构建多个项目模块,那我们就需要对多个项目模块进行聚合 1.1.聚合配置代码 1 <modules> 2 <module>模块一</module&g ...

  7. MyEclipse打包带源码的jar包

    平时开发中,我们喜欢将一些类打包成jar包,然后在别的项目中继续使用,不过由于看不到jar包里面的类的源码了,所以也就无法调试,要想调试,那么就只能通过关联源代码的形式,这样或多或少也有一些不方便,今 ...

  8. git基础命令。

    创建一个新的本地仓库    git init 克隆远程服务器    git clone URL 打开一个文件夹   cd 添加文件   git add . 本地提交更改   git commit -m ...

  9. weex 数据绑定,动态控制组件的显示内容及样式

    无论的原生开发还是weex开发,经常会需要我们对一些组件/控件动态赋值,在原生中,我们大家都知道,对控件setText就可以了,那么在weex中呢,我们需要怎么做呢,其实很简单,几行代码就可以搞定!首 ...

  10. Java 快速入门-06-JDK 目录文件说明

    Java 快速入门-06-JDK 目录文件说明 JDK:开发环境,搞技术的人或者应用服务器使用 JRE:运行环境,如浏览器插件或者Swing界面的客户端等最终用户需要使用 JDK自含一个JRE,并依赖 ...