hdu5035:概率论推公式
题目大意:
你要去邮局发一个包裹,有n个窗口,每个都有人,每一个窗口完成一次服务的时间 ti 的分布符合几何分布:ki*e^(-ki*t)
每个窗口当前服务已经进行了ci时间
你会去第一个完成当前服务的窗口,求你从到达邮局到寄完包裹花费总时间的期望
据说是概率论书上的题目。。概率论才学了一章的哭瞎
比赛的时候题还没完全都清楚,感觉概率应该用积分算,就开始积分,最后搞了半天也是不了了知
后来看了大牛的题解,总算看懂了,也自己推了∫+∞xf(x:λj)dx一次。。
思路:
首先对单个窗口进行概率积分 ∫+∞xf(x:λj)dx ∫+∞xf(x:λj)dx∫+∞xf(x:λj)dx∫+∞xf(x:λj)dx得到完成时间在[0,t]内的概率为 1-e^(-ki*t),所以[t,+∞]的概率即为 e^(-ki*t);
再对期望积分 得到 E(i)=1/ki;
通过以上概率每个窗口完成当前服务的时间是和已经进行的时间ci是无关的(这个由条件概率很好算出)
所以,我们设 在第 t 时刻,你来到了 i 窗口,那么应该满足什么条件呢
根据题意,你将会去结束当前服务最早的一个窗口,所以,你去此窗口的必要条件是 ,其他窗口在 t 时刻并没有结束自己的当前工作
这个概率由乘法原理可以容易写出:
即为 ∏ (j=1...n,j!=i):e^(-kj*t) 。
而花费的时间即为 t (在当前服务上花的时间) + E(i) (在你身上花的时间的期望)。
由于 t 是连续的,还需要对 t 进行积分。
最后再对每一个窗口进行求和,得到期望的表达式
化简过程就需要各种积分了。。所以高数功底还是很重要的啊。
如图:

最后推出公式。。代码就好写了
#include <iostream>
#include <stdio.h>
#include<string.h>
#include<algorithm>
#include<math.h>
#include<string>
#include<ctype.h>
using namespace std;
#define MAXN 10000
double k[];
int main()
{ int tt;
scanf("%d",&tt);
int n;
int cas=;
while(tt--)
{
cas++;
scanf("%d",&n);
double ans=;
for(int i=;i<n;i++)
{
scanf("%lf",k+i);
ans+=k[i];
}
for(int i=;i<n;i++)
{
scanf("%lf",&k[]);
}
printf("Case #%d: %.6f\n",cas,(n+)/ans);
} return ;
}
hdu5035:概率论推公式的更多相关文章
- HDU 4873 ZCC Loves Intersection(JAVA、大数、推公式)
在一个D维空间,只有整点,点的每个维度的值是0~n-1 .现每秒生成D条线段,第i条线段与第i维度的轴平行.问D条线段的相交期望. 生成线段[a1,a2]的方法(假设该线段为第i条,即与第i维度的轴平 ...
- HDU 4870 Rating(概率、期望、推公式) && ZOJ 3415 Zhou Yu
其实zoj 3415不是应该叫Yu Zhou吗...碰到ZOJ 3415之后用了第二个参考网址的方法去求通项,然后这次碰到4870不会搞.参考了chanme的,然后重新把周瑜跟排名都反复推导(不是推倒 ...
- HDU 5047 推公式+别样输出
题意:给n个‘M'形,问最多能把平面分成多少区域 解法:推公式 : f(n) = 4n(4n+1)/2 - 9n + 1 = (8n+1)(n-1)+2 前面部分有可能超long long,所以要转化 ...
- CCF 201312-4 有趣的数 (数位DP, 状压DP, 组合数学+暴力枚举, 推公式, 矩阵快速幂)
问题描述 我们把一个数称为有趣的,当且仅当: 1. 它的数字只包含0, 1, 2, 3,且这四个数字都出现过至少一次. 2. 所有的0都出现在所有的1之前,而所有的2都出现在所有的3之前. 3. 最高 ...
- bjfu1211 推公式,筛素数
题目是求fun(n)的值 fun(n)= Gcd(3)+Gcd(4)+…+Gcd(i)+…+Gcd(n).Gcd(n)=gcd(C[n][1],C[n][2],……,C[n][n-1])C[n][k] ...
- sgu495:概率dp / 推公式
概率题..可以dp也可以推公式 抽象出来的题目大意: 有 n个小球,有放回的取m次 问 被取出来过的小球的个数的期望 dp维护两个状态 第 i 次取出的是 没有被取出来过的小球的 概率dp[i] 和 ...
- ASC(22)H(大数+推公式)
High Speed Trains Time Limit: 4000/2000MS (Java/Others)Memory Limit: 128000/64000KB (Java/Others) Su ...
- hdu_5810_Balls and Boxes(打表推公式)
题目链接:hdu_5810_Balls and Boxes 题意: 如题,让你求那个公式的期望 题解: 打表找规律,然后推公式.这项技能必须得学会 #include<cstdio> #in ...
- hdu4507 数位dp+推公式
推公式的能力需要锻炼.. /* dp的时候要存结构体 里面三个元素: cnt,就是满足条件的个数 sum1,就是满足条件的数字和 sum2,满足条件的数字平方和 推导过程:还是用记忆化搜索模板 dp[ ...
随机推荐
- IT江湖
我喜欢看武侠电影,尤其的70-80年代的邵氏电影,在这个期间,邵氏公司将金庸和古老很多小说都改拍成了电影,可以说,看这些电影是一种享受,真的! 对于现实中的IT世界,也像是一个江湖,当你掌握了一些技能 ...
- 魅蓝Note2跑分 MT6753性能究竟如何
MT6753实力究竟如何? 采用LP工艺的MT6753实际上在性能和功耗方面并不比MT6752高,相反,同频下功耗要高1/3左右.并且其内存带宽是5.3G/s,小于MT 6752的6.4G/s 而且没 ...
- wpf 中自定义控件及其使用
主要有3个步骤: 1. 首先创建一个自定义的控件,该控件继承 TextBox namespace EzIntePark.Presentation.Common { /// <summary> ...
- 浅谈Java内存及GC
目录: 1.JAVA虚拟机规范与JAVA虚拟机 2.JVM结构图 3.GC策略与原理 4.垃圾收集算法 5.回收的时机 6.垃圾搜集器 一.JAVA虚拟机规范与JAVA虚拟机 内存,是指程序运行时的数 ...
- Android 基于Netty的消息推送方案之字符串的接收和发送(三)
在上一篇文章中<Android 基于Netty的消息推送方案之概念和工作原理(二)> ,我们介绍过一些关于Netty的概念和工作原理的内容,今天我们先来介绍一个叫做ChannelBuffe ...
- verilog流水线加法器
四位加法器 两级加法实现 verilog code module pipeliningadder( output reg [3:0] s, output reg co, input [3:0] a, ...
- DDD(Domain Driver Designer) 领域驱动设计简介
领域驱动设计之领域模型 加一个导航,关于如何设计聚合的详细思考,见这篇文章. 2004年Eric Evans 发表Domain-Driven Design –Tackling Complexity i ...
- HttpWebRequest多线程抓取17Track的物流信息
公司的一个系统需要去抓17Track的物流信息,贴上代码有需要的朋友可以参考一下↓ //17Track的抓取地址以及开启的线程数量 <add key="url" value= ...
- Linq/List/Array/IEnumerable等集合操作
来源:http://www.cnblogs.com/liushanshan/archive/2011/01/05/1926263.html 目录 1 LINQ查询结果集 1 2 Sy ...
- .NET中常见的内存泄露问题——GC、委托事件和弱引用
一.什么是内存泄露(memory leak)? 内存泄露不是指内存坏了,也不是指内存没插稳漏出来了,简单来说,内存泄露就是在你期待的时间内你程序所占用的内存没有按照你想象中的那样被释放. 因此什么是你 ...