题意

刚开始你有一个数字 \(0\),每一秒钟你会随机选择一个 \([0,2^n-1]\) 的数字,与你手上的数字进行或操作。选择数字 \(i\) 的概率是 \(p[i]\) 。 问期望多少秒后,你手上的数字变成 \(2^n-1\)。\(n \leq 20\) 。

Solution

$ \text{min-max}$ 容斥。

答案即求 \(E(\max(S))\) 即全集 \(S\) 最后一个元素出现时间的期望。

根据 $ \text{min-max}$ 容斥 :
\[ E(\max(S))=\sum_{T\subseteq S} ( -1)^{T+1} E(\min(T)) \]

(注:下文中 \(S,T\) 并非上文中的 \(S,T\) )
考虑求 \(E(\min(S))\) 即集合 \(S\) 第一个元素出现时间的期望。

\[ E(\min(S)) = \frac{1}{\sum_{T\cap S \neq \emptyset}P_T} \]

考虑补集转化,设 \(S'\) 为 \(S\) 的补集。
\[ E(\min(S)) = \frac{1}{1-\sum_{T\subseteq S'}P_T} \]

直接高维前缀和即可。复杂度 \(O(2^n \cdot n)\) 。

code

#include<bits/stdc++.h>
const int N=(1<<20)+5;
double p[N],ans;
int main()
{int n; scanf("%d",&n);for(int i=0;i<(1<<n);++i){scanf("%lf",&p[i]);if(fabs(p[i])<1e-7){puts("INF");return 0;}}for(int i=0;i<n;++i)for(int j=0;j<(1<<n);++j)if(j&(1<<i)) p[j]+=p[j^(1<<i)];for(int i=1;i<(1<<n);++i){double tmp=1.0/(1.0-p[i^((1<<n)-1)]);__builtin_popcount(i)&1?ans+=tmp:ans-=tmp;}printf("%.7lf",ans);
}

转载于:https://www.cnblogs.com/farway17/p/11002009.html

【LOJ2127】「HAOI2015」按位或相关推荐

  1. LOJ#2127「HAOI2015」按位或

    用$ Min-Max$容斥之后要推的东西少了好多 无耻的用实数快读抢了BZOJ.Luogu.LOJ三个$ OJ$的Rank 1 即将update:被STO TXC OTZ超了QAQ 题意:集合$ [0 ...

  2. mysql永远不用utf8_永远不要在 MySQL 中使用「utf8」

    题图:by apple from Instagram 本文出自极客邦「聊聊架构」公众号的编译.我自己当年也被这个问题坑过,当时并没有如此详细的分析文章.我觉得有责任再次分享一下,让更多人知道这个事情. ...

  3. 如何直观地理解「协方差矩阵」?

    如何直观地理解「协方差矩阵」? Xinyu Chen Urban Traffic Data Analytics 372 人赞同了该文章 协方差矩阵在统计学和机器学习中随处可见,一般而言,可视作方差和协 ...

  4. 消除左递归实验代码_「leetcode」108. 构造二叉搜索树【递归】【迭代】详解!

    构造二叉搜索树,一不小心就平衡了 ❞ 108.将有序数组转换为二叉搜索树 将一个按照升序排列的有序数组,转换为一棵高度平衡二叉搜索树. 本题中,一个高度平衡二叉树是指一个二叉树每个节点 的左右两个子树 ...

  5. 不带头节点的链表有哪些缺点_23张图!万字详解「链表」,从小白到大佬!

    链表和数组是数据类型中两个重要又常用的基础数据类型. 数组是连续存储在内存中的数据结构,因此它的优势是可以通过下标迅速的找到元素的位置,而它的缺点则是在插入和删除元素时会导致大量元素的被迫移动,为了解 ...

  6. 一位老码农的分享:一线程序员该如何面对「中年危机」?

    如果这是第二次看到我的文章,欢迎文末扫码订阅我个人的公众号(跨界架构师)哟~   本文长度为2728字,建议阅读8分钟. 坚持原创,每一篇都是用心之作- 先来聊一下这个问题的背景吧. 前两天有小伙伴问 ...

  7. 机器人 Ameca「苏醒」瞬间逼真到令人恐惧,网友纷纷惊叹……

    整理 | 禾木木 出品 | AI科技大本营(ID:rgznai100) 近日,国内外网友都被一段机器人「苏醒」的视频惊讶到. 视频开始时,机器人似乎已经睡着,眼睛闭着,头部略微向下倾斜.随着肩膀的伸展 ...

  8. AI 复活「她」! GPT-3 帮美国小哥复刻逝去未婚妻,但又夺走她……

    整理 | 禾木木 出品 | AI科技大本营(ID:rgznai100) 今年 7 月,一名33岁的美国小哥 Joshua Barbeau 在未婚妻去世后,根据她在 Facebook 和 twitter ...

  9. OpenAI 以 10 亿美元出售「灵魂」,网友热评不再「Open」

    编译 | 禾木木 出品 | AI科技大本营(ID:rgznai100) OpenAI 如何以 10 亿美元的价格出售其灵魂:GPT-3 和 Codex 背后的公司并不像它声称的那样开放. 当金钱成为障 ...

最新文章

  1. python:列表增加元素,删除元素,切片等
  2. 2011最有用最潮的jQuery特效教程,前端们抱走吧~
  3. swoole php配置文件,easyswoole自义命令加载自定义配置文件
  4. SSIS 学习(2):数据流任务(上)
  5. Hive的几种常见的数据导入方式
  6. [css] 用css创建一个三角形,并简述原理
  7. 不同项目的测试计划可以复用吗_不同品牌的水乳可以一起用吗 混合使用完全没问题...
  8. 【Java开发规范】hashCode 和 equals 的处理规则
  9. Java Socket聊天室
  10. 二级域名使用https证书注意事项
  11. Android Java 中英混合字符串 去掉中文之间的空格,同时保留英文单词之间的空格
  12. 欢迎进入徐松亮博客一站式导航搜索(随时更新)
  13. linux 脚本 过滤 词,linux学习之shell脚本 - 文本过滤
  14. 为什么说java是一个纯粹的面向对象的语言?面向对象语言和面向对象编程
  15. SettingWithCopyWarning: A value is trying to be set on a copy of a slice from a DataFrame
  16. Vimdiff 使用
  17. windows监听扬声器、麦克风静音、音量事件
  18. 回声问题和回声消除技术及在可视监控对讲、楼宇对讲等领域的应用综述
  19. 清空数据库表结构的几种方式
  20. java Servlet mysql json ECharts图表生成实战-罗绍岗-专题视频课程

热门文章

  1. python录制生成自动化脚本_懒人做自动化测试之二--自动化脚本录制
  2. java.io.serializable_java.io.NotSerializableException即使我实现“Serializable”
  3. solve mass matrix in matlab
  4. 向量场的方向导数仍为向量场
  5. 虚拟服务器实验,面向计算机硬件的远程虚拟实验服务
  6. 用SegNet进行室内布局语义分割
  7. linux6.5防火墙开端口,Linux(CentOS6.5) 开放端口,配置防火墙
  8. 设置builder.max_workspace_size的意义
  9. c# selenium chrome 文件下载_使用selenium从网站下载文件
  10. 几种Intent 的用法