首页 > 其他分享 >ICPC2021Kunming G Glass Bead Game 题解

ICPC2021Kunming G Glass Bead Game 题解

时间:2023-12-28 23:11:36浏览次数:34  
标签:int 题解 sum Glass Game ICPC2021Kunming 玻璃珠 Bead

Question

ICPC2021Kunming G Glass Bead Game

有 \(n\) 个玻璃珠, \(B_1,B_2,\cdots, B_n\) 每一步你可以选择一个 \(B_i\) 移道第一个位置上,花费的代价为操作前 \(B_i\) 前面的玻璃珠的个数。已知每一步选择玻璃珠 \(B_i\) 的概率 \(p_i\) ,问当 \(m\rightarrow \infty\) 时,在第 \(m\) 轮花费的期望代价是多少

Solution

记随机变量 \(X\) 为第 \(m\) 轮花费的代价

记随机变量 \(X_{i,j}\) 为第 \(m\) 轮选择 \(B_j\) 且 \(B_i\) 在 \(B_j\) 前面为 \(1\),其他情况为 \(0\)

有 \(X=\sum_\limits{i\ne j} X_{i,j}\)
\(E(X)=\sum E(X_{i,j})=\sum P(X_{i,j}=1)\)

设第 \(m\) 轮时 \(B_i\) 在 \(B_j\) 前面的概率是 \(f(m,i,j)\)

有 $$f(m,i,j)=(1-p_j)f(m-1,i,j)+p_i(1-f(m-1,i,j))$$

两边 \(m \rightarrow \infty\) 有

\[f(i,j)=(1-p_j)f(i,j)+p_i(1-f(i,j)) \]

解得

\[f(i,j)=\frac{p_i}{p_i+p_j} \]

则在第 \(m\) 轮时,选择 \(B_j\) 的概率是 \(p_j\) 有

\[P(X_{i,j}=1)=\frac{p_ip_j}{p_i+p_j} \]

所以答案就是

\[\sum\limits_{i\ne j} \frac{p_i p_j}{p_i+p_j} \]

Code

#include<bits/stdc++.h>
using namespace std;
int main(){
    int n;scanf("%d",&n);
    vector<double> p(n+1,0);
    for(int i=1;i<=n;i++) scanf("%lf",&p[i]);
    double ans=0;
    for(int i=1;i<=n;i++){
        double sum=0;
        for(int j=1;j<=n;j++)if(i!=j){
            sum+=p[j]/(p[i]+p[j]);
        }
        ans+=sum*p[i];
    }
    printf("%.10lf\n",ans);
}

标签:int,题解,sum,Glass,Game,ICPC2021Kunming,玻璃珠,Bead
From: https://www.cnblogs.com/martian148/p/17933795.html

相关文章

  • ICPC2021Kunming G Find the Maximum 题解
    QuestionFindtheMaximum给出一个树,每个点有一个权值\(b_n\),求一条树上路径\(V\),要求\(\frac{\sum_{u\inV(-x^2+b_ux)}}{|V|}\)最大,其中\(x\)是自己选择的一个树Solution先转化一下\(\frac{\sum_{u\inV(-x^2+b_ux)}}{|V|}\),得到\[\frac{\sum_{u\inV(-x^2+b_......
  • vue前端node内存溢出问题解决
    前端项目运行时,如果经常运行慢,崩溃停止服务,报如下错误:FATALERROR:CALL_AND_RETRY_LASTAllocationfailed-JavaScriptheapoutofmemory(JavaScript堆内存不足) 原因:因为在Node中,通过JavaScript使用内存时只能使用部分内存(64位系统:1.4GB,32位系统:0.7GB),这个时候,如......
  • openssh升级对应问题解决方案
    问题1:./openssl:errorwhileloadingsharedlibraries:libssl.so.1.1:cannotopensharedobjectfile:Nosuchfileordirectory解决方案:cp/usr/local/openssl1.1.1/lib/libssl.so.1.1/lib64/cp/home/tydl/openssl-1.1.1u/libcrypto.so.1.1/lib64/ 问题2:/etc/ssh/s......
  • 「题解」Codeforces 1427G One Billion Shades of Grey
    感谢127的指导/ll\(|h_u-h_v|=\max(0,h_u-h_v)+\max(0,h_v-h_u)\),那么可以把它看成这样的问题:\[\min\{\sum_{(u,v)}\max(0,h_u-h_v+w_{u,v})c_{u,v}\}\]对偶一下,问题就变为:如果两个格子相邻就互相连容量为\(c_{u,v}=1\),费用为\(w_{u,v}=0\)的边,跑最大费用循环流。为了限......
  • 「题解」P9747 「KDOI-06-S」签到题
    一个区间合法的充要条件是存在\(x\)满足其为区间按位或,并且《\(x\)左侧所有数或起来》《\(x\)右侧所有数或起来》二者有其一为\(x\)。扫描线扫右端点,不同的按位或将左端点分为\(\logA\)个区间,对于每个区间\([l,r]\)先在区间按位或\(v\)在序列中存在位置的vector中......
  • CF396C On Changing Tree 题解
    CF396C考虑将贡献表示出来:\(\forallv\in\text{subtree}_u\),\(v\)会加上\(x-(dep_v-dep_u)k\),然后发现这个东西可以维护整棵子树,即把\(x,dep_u\timesk\)和\(dep_v\timesk\)分开计算,然后\(dep_v\)可以最后再管,就变为子树加,单点和了。用树状数组维护dfs序即可。......
  • TinyMCE富文本编辑器粘贴图片自动上传问题解决
    TinyMCE编辑器支持粘贴图片,但是自动会将图片转换成base64编码,这样将内容提交到后台,数据会很大。  图|TinyMCE本文内容配置TinyMCE(版本:5.10.0)向编辑器中粘贴图片自动上传到后台,以下为配置代码:tinymce.init({selector:'#textarea',plugins:'previewautolink......
  • Ping不通问题解决 windows 查看对端MAC地址 ARP -a
    Ping不通问题解决   Linux查看ARP信息指南(linux查看arp) ARP(地址解析协议)是TCP/IP协议提供的网络层协议,通过ARP可以查看网络层面上当前可连接的本地网络内每个主机的MAC地址。 ##查看系统的ARP信息 Linux系统中查看ARP信息的方法有很多,下面简单介绍几种常见的查......
  • 题解 P9993【[Ynoi Easy Round 2024] TEST_133】
    就硬把线段树3和数列分块入门2揉到一起出。维护原数组\(a\)及其历史最大值\(hist\),对每个块,维护块内\(a\)升序排序后结果\(p\)、块内\(a\)升序排序后历史最大值前缀和\(prehist\)、块加标记\(add\)、块历史和加标记\(histadd\)。下传标记和区间修改操作仿照线......
  • [WC2018] 通道题解
    先考虑只有两颗树要咋做,柿子先变成\(dep_x+dep_y-2\timesdep_{lca}+dist_2(x,y)\)我们可以新建节点\(x'\rightarrowx\),边权为\(dep_x\),这样上面的式子可以看作枚举\(lca\)后,选出一个端点在不同子树中的直径,可以直接\(DP\)合并直径再考虑多了一颗树,我们可以进行边分治,枚......