UVa 12230 - Crossing Rivers(数学期望)
链接:
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(数学期望)的更多相关文章
- Uva - 12230 Crossing Rivers (数学期望)
你住在村庄A,每天需要过很多条河到另一个村庄B上班,B在A的右边,所有的河都在A,B之间,幸运的是每条船上都有自由移动的自动船, 因此只要到达河左岸然后等船过来,在右岸下船,上船之后船的速度不变.现在 ...
- UVA - 12230 Crossing Rivers (期望)
Description You live in a village but work in another village. You decided to follow the straight pa ...
- UVA - 12230 Crossing Rivers 概率期望
You live in a village but work in another village. You decided to follow the straight path between y ...
- UVA 12230 - Crossing Rivers(概率)
UVA 12230 - Crossing Rivers 题目链接 题意:给定几条河,每条河上有来回开的船,某一天出门,船位置随机,如今要求从A到B,所须要的期望时间 思路:每条河的期望,最坏就是船刚开 ...
- HDU3232 Crossing Rivers 数学期望问题
Crossing Rivers ...
- UVA.12230.Crossing Rivers(期望)
题目链接 /* 到达一条河时,船在河中的位置是随机的,所以船到达岸边需要的时间在 0~2l/v 均匀分布,所以船到岸的期望为 (0+2l/v)/2 过河需要 l/v 的时间,所以过一条河总的期望为 ( ...
- UVA - 12230 Crossing Rivers(过河)(期望)
题意:从A到B需要经过n条河,已知AB间距离D和每条河的长度L以及在该条河上的船速v,求A到B平均情况下需多长时间.陆地行走速度为1,船的位置和朝向均匀随机. 分析: 1.过一条河,最短时间L/v(无 ...
- UVA 12230 Crossing Rivers
嘟嘟嘟 虽然分类是期望dp,不过好像是最水的 因为在陆地上的时间和概率是固定的,所以只用考虑过河的期望时间. 对于一条河p, l, v,p好像没什么用……不管了,首先期望时间我觉得可以这么算:期望时间 ...
- UVA12230 Crossing Rivers (数学期望)
题目链接 题意翻译 一个人每天需要从家去往公司,然后家与公司的道路是条直线,长度为 \(D\). 同时路上有 \(N\) 条河,给出起点和宽度\(W_i\) , 过河需要乘坐速度为\(V_i\) 的渡 ...
随机推荐
- Java学习--使用 Math 类操作数据
使用 Math 类操作数据 Math 类位于 java.lang 包中,包含用于执行基本数学运算的方法, Math 类的所有方法都是静态方法,所以使用该类中的方法时,可以直接使用类名.方法名,如: M ...
- 小菜庄园 Spring------图片的上传和下载
1.图片的上传前台三个条件 文件上传页面的3个要求: < 1.表单提交为post.mothod="post" < 2.表单的 ...
- 认识Groovy
什么是groovy: Groovy 是 JVM 的一个替代语言 —替代 是指可以用 Groovy 在 Java 平台上进行 Java 编程,使用方式基本与使用 Java 代码的方式相同. 在编写新应用 ...
- libevent学习笔记 —— 第一个程序:计时器
用libevent写个定时器其实步骤不多: 1.初始化libevent 2.设置事件 3.添加事件 4.进入循环 由于定时事件触发之后,默认自动删除,所以如果要一直计时,则要在回调函数中重新添加定时事 ...
- 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 ...
- Maven学习总结(七):Maven的聚合和继承
一.聚合 如果我们想一次构建多个项目模块,那我们就需要对多个项目模块进行聚合 1.1.聚合配置代码 1 <modules> 2 <module>模块一</module&g ...
- MyEclipse打包带源码的jar包
平时开发中,我们喜欢将一些类打包成jar包,然后在别的项目中继续使用,不过由于看不到jar包里面的类的源码了,所以也就无法调试,要想调试,那么就只能通过关联源代码的形式,这样或多或少也有一些不方便,今 ...
- git基础命令。
创建一个新的本地仓库 git init 克隆远程服务器 git clone URL 打开一个文件夹 cd 添加文件 git add . 本地提交更改 git commit -m ...
- weex 数据绑定,动态控制组件的显示内容及样式
无论的原生开发还是weex开发,经常会需要我们对一些组件/控件动态赋值,在原生中,我们大家都知道,对控件setText就可以了,那么在weex中呢,我们需要怎么做呢,其实很简单,几行代码就可以搞定!首 ...
- Java 快速入门-06-JDK 目录文件说明
Java 快速入门-06-JDK 目录文件说明 JDK:开发环境,搞技术的人或者应用服务器使用 JRE:运行环境,如浏览器插件或者Swing界面的客户端等最终用户需要使用 JDK自含一个JRE,并依赖 ...