Conjugate

问题描述

在不存在的 \(\text{noip day3}\) 中,小 \(\text{w}\) 见到了一堆堆的谜题。

比如这题为什么会叫共轭?

他并不知道答案。

有 \(n\) 堆谜题,每堆有 \(a_i\) 个,小 \(\text{w}\) 每次从剩下的谜题中选择\(1\)个,然后把\(\tt{Ta}\)所在的那\(1\)堆谜题

全部丢掉。

小 \(\text{w}\) 期望多少次后丢掉第一堆?

输入格式

第一行一个整数 \(n\)。

接下来 \(n\) 个整数,表示 \(a_i\)。

输出格式

一个数表示期望,误差不得超过 \(10^{-6}\)。

数据规模与约定

对于 \(20\%\) 的数据, \(n ≤ 10\)。

对于 \(40\%\) 的数据, \(n ≤ 1000\)。

对于另外 \(20\%\) 的数据, \(a_i = 1\)。

对于 \(100\%\) 的数据, \(n ≤ 10^5,1 ≤ a_i ≤ 10^9\)。


算是积累了一种期望的思考与做题方式了。

期望的定义是:每个随机事件的概率 \(\times\) 这个随机事件的贡献 的和,要求所有随机事件交为要求的样本空间。

这个题,我们常见的划分随机事件是按照条件概率一个一个选择然后进行讨论的,但是这样其实没法进行计算。

如果我们规定这样一种随机事件:丢掉第\(i\)堆谜题在丢掉第\(1\)种谜题之前的事件。

那么在任何情况下,这种事件的概率都为\(\frac{a_i}{a_i+a_1}\)

这种随机事件对期望的贡献是\(1\),即\(i\)被抽取了\(1\)次,然后我们最后一次还要抽取一次\(1\),所以答案要加\(1\),则为

\[sum_{i=2}^n\frac{a_i}{a_i+a_1}+1
\]

期望可以这样算的原因主要还是因为期望具有可加性或者说期望是线性的


Code:

#include <cstdio>
#define rep(i,a,b) for(int i=a;i<=b;i++)
int n;double ans,a[2];
int main()
{
scanf("%d%lf",&n,a+1);
rep(i,2,n) scanf("%lf",a),ans+=a[0]/(a[1]+a[0]);
printf("%lf\n",ans+1);
return 0;
}

2018.10.24

Conjugate 解题报告的更多相关文章

  1. CH Round #56 - 国庆节欢乐赛解题报告

    最近CH上的比赛很多,在此会全部写出解题报告,与大家交流一下解题方法与技巧. T1 魔幻森林 描述 Cortana来到了一片魔幻森林,这片森林可以被视作一个N*M的矩阵,矩阵中的每个位置上都长着一棵树 ...

  2. 二模13day1解题报告

    二模13day1解题报告 T1.发射站(station) N个发射站,每个发射站有高度hi,发射信号强度vi,每个发射站的信号只会被左和右第一个比他高的收到.现在求收到信号最强的发射站. 我用了时间复 ...

  3. BZOJ 1051 最受欢迎的牛 解题报告

    题目直接摆在这里! 1051: [HAOI2006]受欢迎的牛 Time Limit: 10 Sec  Memory Limit: 162 MBSubmit: 4438  Solved: 2353[S ...

  4. 习题:codevs 2822 爱在心中 解题报告

    这次的解题报告是有关tarjan算法的一道思维量比较大的题目(真的是原创文章,希望管理员不要再把文章移出首页). 这道题蒟蒻以前做过,但是今天由于要复习tarjan算法,于是就看到codevs分类强联 ...

  5. 习题:codevs 1035 火车停留解题报告

    本蒟蒻又来写解题报告了.这次的题目是codevs 1035 火车停留. 题目大意就是给m个火车的到达时间.停留时间和车载货物的价值,车站有n个车道,而火车停留一次车站就会从车载货物价值中获得1%的利润 ...

  6. 习题: codevs 2492 上帝造题的七分钟2 解题报告

    这道题是受到大犇MagHSK的启发我才得以想出来的,蒟蒻觉得自己的代码跟MagHSK大犇的代码完全比不上,所以这里蒟蒻就套用了MagHSK大犇的代码(大家可以关注下我的博客,友情链接就是大犇MagHS ...

  7. 习题:codevs 1519 过路费 解题报告

    今天拿了这道题目练练手,感觉自己代码能力又增强了不少: 我的思路跟别人可能不一样. 首先我们很容易就能看出,我们需要的边就是最小生成树算法kruskal算法求出来的边,其余的边都可以删掉,于是就有了这 ...

  8. NOIP2016提高组解题报告

    NOIP2016提高组解题报告 更正:NOIP day1 T2天天爱跑步 解题思路见代码. NOIP2016代码整合

  9. LeetCode 解题报告索引

    最近在准备找工作的算法题,刷刷LeetCode,以下是我的解题报告索引,每一题几乎都有详细的说明,供各位码农参考.根据我自己做的进度持续更新中......                        ...

随机推荐

  1. Python练习笔记(2)

    文件读写,多线程.多进程 import time,os,threading,random def file_read(path): try: with open(path, 'r') as f: # ...

  2. PHP json_decode返回null解析失败原因

    在PHP5.4之前 json_decode函数有两个参数json_decode有两个参数,第一个是待解析的字符串,第二个是是否解析为Array json_decode要求的字符串比较严格:(1)使用U ...

  3. centos 7 关闭IPtables

    systemctl status iptables.service systemctl stopiptables.service

  4. POJ 3210 : Coins

    参考:https://blog.csdn.net/u010885899/article/details/46636523 http://kqwd.blog.163.com/blog/static/41 ...

  5. 洛谷P4016 负载平衡问题

    题目描述 G 公司有 n 个沿铁路运输线环形排列的仓库,每个仓库存储的货物数量不等.如何用最少搬运量可以使 n 个仓库的库存数量相同.搬运货物时,只能在相邻的仓库之间搬运. 输入输出格式 输入格式: ...

  6. Django中的select_related与prefetch_related

      Django是一个基于Python的网站开发框架,一个很重要的特点就是Battery Included,简单来说就是包含了常规开发中所需要的一切东西,包括但不限于完整的ORM模型.中间件.会话处理 ...

  7. Java输出日历写法

    package TestString_2; import java.text.ParseException;import java.util.Calendar;import java.util.Gre ...

  8. anaconda虚拟环境操作

    1.首先在所在系统中安装Anaconda.可以打开命令行输入conda -V检验是否安装以及当前conda的版本. 2.conda常用的命令. 1)conda list 查看安装了哪些包. 2)con ...

  9. Python的文件输入输出,如何追加内容,读取内容,添加内容

    python主要的文件打开的几种访问模式 模式可以为读模式('r').写模式('w')或追加模式('a'),当然还有rb.wb.ab.r+.w+.a+.rb+.wb+.ab+,然而实际从代码上我也没看 ...

  10. springmvc基础篇—使用注解方式为前台提供数据

    一.新建一个Controller package cn.cfs.springmvc.service; import java.util.ArrayList; import java.util.Hash ...