#min-max容斥,FWT#洛谷 3175 [HAOI2015]按位或
分析
按位去看,最终的答案要求 \(E(\max S)\) 就是 \(S\) 出现的期望时间。
根据min-max容斥,\(E(\max S)=\sum_{T\subset S}(-1)^{|T|-1}E(\min T)\)
那么 \(E(\min T)\) 也就是 \(T'\subset T\) 出现的期望时间,与不在 \(T\) 中的 1 不能出现的概率有关
\]
下面这个求和可以用子集卷积实现,FWT 的或卷积就可以做到 \(O(2^nn)\)
代码
#include <cstdio>
#define rr register
using namespace std;
const int N=1050011;
int n,al,xo[N]; double f[N],ans;
inline void FWT_OR(double *f){
for (rr int p=2;p<=n;p<<=1){
rr int len=p>>1;
for (rr int i=0;i<n;i+=p)
for (rr int j=i;j<i+len;++j)
f[j+len]+=f[j];
}
}
signed main(){
scanf("%d",&n),n=1<<n,al=n-1;
for (rr int i=0;i<n;++i) scanf("%lf",&f[i]);
for (rr int i=1;i<n;++i) xo[i]=xo[i&(i-1)]+1;
FWT_OR(f);
for (rr int i=1;i<n;++i)
if (1-f[al^i]>1e-8)
ans+=(xo[i]&1?1:-1)/(1-f[al^i]);
if (ans<1e-8) printf("INF");
else printf("%.8lf",ans);
return 0;
}
#min-max容斥,FWT#洛谷 3175 [HAOI2015]按位或的更多相关文章
- [洛谷P3175][HAOI2015]按位或
题目大意:刚开始有一个数$x=0$,每秒钟有一个数$y\in[0,2^n)(n\leqslant20)$按一定概率随机出现,数$i$的概率为$p_i$,保证$\sum\limits_{i=0}^{2^ ...
- 洛谷 P3175 [HAOI2015]按位或
题目分析 与hdu4336 Card Collector相似,使用min-max容斥. 设\(\max(S)\)表示集合\(S\)中最后一位出现的期望时间. 设\(\min(S)\)表示集合\(S\) ...
- 「PKUWC2018」随机游走(min-max容斥+FWT)
「PKUWC2018」随机游走(min-max容斥+FWT) 以后题目都换成这种「」形式啦,我觉得好看. 做过重返现世的应该看到就想到 \(min-max\) 容斥了吧. 没错,我是先学扩展形式再学特 ...
- [luogu 3175] [HAOI2015]按位或(min-max容斥+高维前缀和)
[luogu 3175] [HAOI2015]按位或 题面 刚开始你有一个数字0,每一秒钟你会随机选择一个[0,2^n-1]的数字,与你手上的数字进行按位或运算.问期望多少秒后,你手上的数字变成2^n ...
- 洛谷 P3177 [HAOI2015]树上染色 树形DP
洛谷 P3177 [HAOI2015]树上染色 树形DP 题目描述 有一棵点数为 \(n\) 的树,树边有边权.给你一个在 \(0 \sim n\)之内的正整数 \(k\) ,你要在这棵树中选择 \( ...
- 【洛谷U20626】gemo 容斥 FWT 高斯消元
题目大意 给你一个无向图,有\(m\)个询问,每次给你一个点\(x\)和一个点集\(S\),问你从\(x\)开始走,每次从一个点随机的走到与这个点相邻的点,问你访问\(S\)中每个点至少一次的期望步数 ...
- bzoj 4036: [HAOI2015]按位或【min-max容斥+FWT】
其实也不是FWT--我也不知道刷FWT专题问什么会刷出来这个东西 这是min-max容斥讲解:https://www.zybuluo.com/ysner/note/1248287 总之就是设min(s ...
- P3175-[HAOI2015]按位或【min-max容斥,FWT】
正题 题目链接:https://www.luogu.com.cn/problem/P3175 题目大意 开始有一个\(n\)位二进制数\(s=0\),每次有\(p_i\)概率选取数字\(i\)让\(s ...
- BZOJ4033或洛谷3177 [HAOI2015]树上染色
BZOJ原题链接 洛谷原题链接 很明显的树形\(DP\). 因为记录每个点的贡献很难,所以我们可以统计每条边的贡献. 对于每一条边,设边一侧的黑点有\(B_x\)个,白点有\(W_x\),另一侧黑点有 ...
- 洛谷 P5643 - [PKUWC2018]随机游走(Min-Max 容斥+FWT+树上高斯消元,hot tea)
题面传送门 一道挺综合的 hot tea,放到 PKUWC 的 D2T2 还挺喜闻乐见的( 首先我们考虑怎样对一个固定的集合 \(S\) 计算答案,注意到我们要求的是一个形如 \(E(\max(S)) ...
随机推荐
- docker清理已停止的容器
docker rm -v $(docker ps -aq -f status=exited) 可以将该命令写成shell脚本或者alias.-v参数表示同时清理数据卷
- 鸿蒙开发学习(二)之ArkUI
目录 UI开发 布局 布局选择 布局位置 组件 容器组件 row.column RelativeContainer 列表 Tabs 子组件 页面路由 GitHub地址,欢迎star HmDemo: 鸿 ...
- Redis缓存应用场景
记录一下自己的听课笔记,看的网课. 参考资料:https://zhuanlan.zhihu.com/p/157717158 常见应用场景 1 数据缓存 缓存一些常用的.经常访问的.不经常变化的数据,也 ...
- Java纯手打web服务器(二)
概要:这里对上一篇中的访问资源进行改进,将访问servlet和静态资源进行区分. 主要不同的地方是加入了两种分析器 servlet分析器 if (request.getUri().startsWith ...
- 【Azure 应用服务】Azure Function App在部署时候遇见 503 ServiceUnavailable
问题描述 在VS Code中编写好 Azure Function App代码后,通过 func azure functionapp publish 部署失败,抛出 503 Service Unava ...
- 【Azure 应用程序见解】在Azure门户中,创建App Service(应用服务)时,无法一起创建Application Insights的问题
问题描述 创建Web应用时启用监视的问题.Azure管理员(Admin)用户下分配了 一个子用户.但是在使用子用户创建WEB应用的时候,启用 Application Insights 选项的 &quo ...
- 【Azure Function】Function App和Powershell 集成问题, 如何安装PowerShell的依赖模块
问题描述 在Azure Function中创建一个PowerShell的函数后,其中使用了Get-AzMaintenanceUpdate,New-AzApplyUpdate 等指令,但是在执行时错误. ...
- 【Azure 应用服务】在Azure上部署一套VUE框架的单页面应用,有什么可以参考的文档呢?
问题描述 在Azure上部署一套VUE框架的单页面应用,有什么可以参考的文档呢? 问题回答 Azure官方上并没有VUE框架的实例代码,但是可以参考Node JS项目,来进行设置. 在 Azure 中 ...
- STL-queue模拟实现
#include<list> #include<assert.h> #include<deque> #include<iostream> using s ...
- Spring5课堂笔记
Spring5 1..Spring 1.1.简介 Spring --> 春天,为开源软件带来了春天 2002,首次推出了Spring框架的雏形:interface21框架! Spring框架以i ...