其实也不是FWT……我也不知道刷FWT专题问什么会刷出来这个东西

这是min-max容斥讲解:https://www.zybuluo.com/ysner/note/1248287

总之就是设min(s),max(s)分别表示集合s里最早和最晚出现的元素,显然E(amx(全集))就是答案

然后有这样的式子:

\[E(max(s))=\sum_{s'\in s}E(min(s'))*(-1)^{|s'|+1}
\]

\[E(min(s))=\frac{1}{\sum_{s'\cap s!=\phi }p(s')}
\]

当然不会证

然后就是先求min再求max,求min的时候注意到正安则反,取补集就是orFWT的正变换,O(nlogn)求出后枚举子集求max(全集)即可

#include<iostream>
#include<cstdio>
using namespace std;
const int N=2000005;
const double eps=1e-8;
int n,m,b[N];
double a[N],ans;
int main()
{
scanf("%d",&n);
m=(1<<n);
for(int i=0;i<m;i++)
scanf("%lf",&a[i]),b[i]=b[i>>1]+(i&1);
for(int i=1;i<m;i<<=1)
for(int j=0;j<m;j+=(i<<1))
for(int k=0;k<i;k++)
a[i+j+k]+=a[j+k];
for(int i=1;i<m;i++)
if(1-a[(m-1)^i]>eps)
ans+=((b[i]&1)?1:-1)/(1-a[(m-1)^i]);
if(ans<eps)
puts("INF");
else
printf("%.8f\n",ans);
return 0;
}

bzoj 4036: [HAOI2015]按位或【min-max容斥+FWT】的更多相关文章

  1. [BZOJ 4036][HAOI2015]按位或

    4036: [HAOI2015]按位或 Time Limit: 10 Sec  Memory Limit: 256 MBSec  Special JudgeSubmit: 746  Solved: 4 ...

  2. BZOJ 4036: [HAOI2015]按位或 集合幂函数 莫比乌斯变换 莫比乌斯反演

    http://www.lydsy.com/JudgeOnline/problem.php?id=4036 http://blog.csdn.net/lych_cys/article/details/5 ...

  3. [HAOI2015]按位或(min-max容斥,FWT,FMT)

    题目链接:洛谷 题目大意:给定正整数 $n$.一开始有一个数字 $0$,然后每一秒,都有 $p_i$ 的概率获得 $i$ 这个数 $(0\le i< 2^n)$.一秒恰好会获得一个数.每获得一个 ...

  4. BZOJ4036 [HAOI2015]按位或 【minmax容斥 + 期望 + FWT】

    题目链接 BZOJ4036 题解 好套路的题啊,,, 我们要求的,实际上是一个集合\(n\)个\(1\)中最晚出现的\(1\)的期望时间 显然\(minmax\)容斥 \[E(max\{S\}) = ...

  5. P3175-[HAOI2015]按位或【min-max容斥,FWT】

    正题 题目链接:https://www.luogu.com.cn/problem/P3175 题目大意 开始有一个\(n\)位二进制数\(s=0\),每次有\(p_i\)概率选取数字\(i\)让\(s ...

  6. bzoj 4036 [HAOI2015]按位或——min-max容斥+FMT

    题目:https://www.lydsy.com/JudgeOnline/problem.php?id=4036 题解:https://www.cnblogs.com/Zinn/p/10260126. ...

  7. 【BZOJ4036】按位或(Min-Max容斥,FWT)

    [BZOJ4036]按位或(Min-Max容斥,FWT) 题面 BZOJ 洛谷 题解 很明显直接套用\(min-max\)容斥. 设\(E(max\{S\})\)表示\(S\)中最晚出现元素出现时间的 ...

  8. 「PKUWC2018」随机游走(min-max容斥+FWT)

    「PKUWC2018」随机游走(min-max容斥+FWT) 以后题目都换成这种「」形式啦,我觉得好看. 做过重返现世的应该看到就想到 \(min-max\) 容斥了吧. 没错,我是先学扩展形式再学特 ...

  9. BZOJ 4036 [HAOI2015] Set 解题报告

    首先我们不能一位一位的考虑,为什么呢? 你想想,你如果一位一位地考虑的话,那么最后就只有 $n$ 个数字,然而他给了你 $2^n$ 个数字,怎么看都不对劲呀.(我是因为这样子弄没过样例才明白的) 所以 ...

随机推荐

  1. ThinkPHP中$map用法

    ThinkPHP内置了非常灵活的查询方法,可以快速的进行数据查询操作,查询条件可以用于CURD等任何操作,作为where方法的参数传入即可,下面来一一讲解查询语言的内涵. 查询方式ThinkPHP可以 ...

  2. cocoaPods 安装和应用

    一.安装 下载安装CocoaPods需要Ruby环境 1. 检测gem版本 $ gem -v 如果gem版本小于2.6.x,则需要更新gem 2. 更新gem(gem版本高于2.6.x可跳过此步) 检 ...

  3. C#语言 函数

  4. 关于 underscore 中模板引擎的应用演示样例

    //关于 underscore 中模板引擎的应用演示样例 <!doctype html> <html> <head> <meta charset=" ...

  5. Linux fcntl函数详解

    功能描述:根据文件描述词来操作文件的特性. 文件控制函数          fcntl -- file control 头文件: #include <unistd.h> #include ...

  6. JavaScript提高:001:ASP.NET使用easy UI

    jQuery EasyUI是一组基于jQuery的UI插件集合.能够简洁的开发出功能多内容丰富的界面,而不须要开发人员自己费力的写那些复杂的js代码.本文简介在ASP.NET开发中引用这些js文件和样 ...

  7. reviews of learn python3 the hard way

    Almost every time,I try my best to write a long review of the book I have read. But this time I want ...

  8. java中方法中声明三个点“...”作用

    public class Test {  public static void main(String[] args) {   String str[] = {"s"," ...

  9. eureka-注册中心使用密码验证

    spring cloud 1.1 版本之后可以使用 配置文件: bootstrap.yml server.port: 9000 spring.application.name: registry eu ...

  10. git format-patch 用法

    git format-patch HEAD^ # git format-patch -s 1bbe3c8c197a35f79bfddaba099270a2e54ea9c7 please replace ...