UVa 12230 && HDU 3232 Crossing Rivers (数学期望水题)
2024-08-24 18:03:56
题意:你要从A到B去上班,然而这中间有n条河,距离为d。给定这n条河离A的距离p,长度L,和船的移动速度v,求从A到B的时间的数学期望。
并且假设出门前每条船的位置是随机的,如果不是在端点,方向也是不定的,你在陆地行走速度为1,输入保证河在AB之前,并且不会重叠。
析:一看这个题,好像不会啊。。。这怎么求,这么乱,这么复杂。。。
但是仔细一想求时间期望,不就是在过河的地方时间不是固定的么,只要求出过河的时间的数学期望,利用数学期望的线性,加起来就OK了。
这样一想感觉就不乱了,那么怎么求每个河的时间呢,题目说了都是船都是随机的,可以认为是等概率的,那么过河的最短时间就是L/v,正好到河边船正好过来,
最长时间就是3*L/v,也就是他刚到河边,船刚走,最后再加上在陆地的时间就OK了。
代码如下:
#include <iostream>
#include <cstring>
#include <vector>
#include <algorithm>
#include <cstdio> using namespace std; int main(){
int n, d, kase = 0;
while(scanf("%d %d", &n, &d)){
if(!d && !n) break;
double ans = (double)d;
for(int i = 0; i < n; ++i){
double p, l, v;
scanf("%lf %lf %lf", &p, &l, &v);
ans = ans - l + 2 * l / v;//由于在陆地的速度是1,所以不用除了
} printf("Case %d: %.3lf\n\n", ++kase, ans);
}
return 0;
}
最新文章
- 【leetcode】Minimum Depth of Binary Tree
- psr的规范
- angular文件引入带来的绑定问题
- NSLog函数重写
- PHP不能创建csv中文名文件
- I2C实时时钟rx-8025板卡实际应用
- 根据查询结果创建新表create table .. as (select....)
- android Handler机制之ThreadLocal详解
- ubuntu12.04:Mysql数据库:自动安装
- 2.2String工具类
- Java学习-051-Detected both log4j-over-slf4j.jar AND bound slf4j-log4j12.jar on the class path, preempting StackOverflowError
- extentreports
- html5 drag 文件拖拽浅淡
- 【python】入门指南1
- WCF接口实例介绍
- linux卸载自带jdk
- 文件读写’r&#39;和’rb’区别
- 开发VS2008 AddIn 入门Sample
- Codeforces Round #462 (Div. 2), problem: (C) A Twisty Movement (求可以转一次区间的不递增子序列元素只有1,2)
- mui 窗体切换