zoukankan      html  css  js  c++  java
  • UVa 12230 && HDU 3232 Crossing Rivers (数学期望水题)

    题意:你要从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
    
    ", ++kase, ans);
        }
        return 0;
    }
    
  • 相关阅读:
    redis基础和sentinel
    Redis 官方集群
    python3基础(九)内置函数
    cobbler安装配置.基本全了多看help和docs
    #多个关联的python程序在linux后台运行
    python3基础(七)函数基础
    python基础(八)生成器,迭代器,装饰器,递归
    (03)-Python3之--元组(tuple)操作
    (02)-Python3之--列表(list)操作
    (01)-Python3之--字符串操作
  • 原文地址:https://www.cnblogs.com/dwtfukgv/p/5538103.html
Copyright © 2011-2022 走看看