bzoj 4036: [HAOI2015]按位或【min-max容斥+FWT】
其实也不是FWT……我也不知道刷FWT专题问什么会刷出来这个东西
这是min-max容斥讲解:https://www.zybuluo.com/ysner/note/1248287
总之就是设min(s),max(s)分别表示集合s里最早和最晚出现的元素,显然E(amx(全集))就是答案
然后有这样的式子:
\]
\]
当然不会证
然后就是先求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】的更多相关文章
- [BZOJ 4036][HAOI2015]按位或
4036: [HAOI2015]按位或 Time Limit: 10 Sec Memory Limit: 256 MBSec Special JudgeSubmit: 746 Solved: 4 ...
- BZOJ 4036: [HAOI2015]按位或 集合幂函数 莫比乌斯变换 莫比乌斯反演
http://www.lydsy.com/JudgeOnline/problem.php?id=4036 http://blog.csdn.net/lych_cys/article/details/5 ...
- [HAOI2015]按位或(min-max容斥,FWT,FMT)
题目链接:洛谷 题目大意:给定正整数 $n$.一开始有一个数字 $0$,然后每一秒,都有 $p_i$ 的概率获得 $i$ 这个数 $(0\le i< 2^n)$.一秒恰好会获得一个数.每获得一个 ...
- BZOJ4036 [HAOI2015]按位或 【minmax容斥 + 期望 + FWT】
题目链接 BZOJ4036 题解 好套路的题啊,,, 我们要求的,实际上是一个集合\(n\)个\(1\)中最晚出现的\(1\)的期望时间 显然\(minmax\)容斥 \[E(max\{S\}) = ...
- P3175-[HAOI2015]按位或【min-max容斥,FWT】
正题 题目链接:https://www.luogu.com.cn/problem/P3175 题目大意 开始有一个\(n\)位二进制数\(s=0\),每次有\(p_i\)概率选取数字\(i\)让\(s ...
- bzoj 4036 [HAOI2015]按位或——min-max容斥+FMT
题目:https://www.lydsy.com/JudgeOnline/problem.php?id=4036 题解:https://www.cnblogs.com/Zinn/p/10260126. ...
- 【BZOJ4036】按位或(Min-Max容斥,FWT)
[BZOJ4036]按位或(Min-Max容斥,FWT) 题面 BZOJ 洛谷 题解 很明显直接套用\(min-max\)容斥. 设\(E(max\{S\})\)表示\(S\)中最晚出现元素出现时间的 ...
- 「PKUWC2018」随机游走(min-max容斥+FWT)
「PKUWC2018」随机游走(min-max容斥+FWT) 以后题目都换成这种「」形式啦,我觉得好看. 做过重返现世的应该看到就想到 \(min-max\) 容斥了吧. 没错,我是先学扩展形式再学特 ...
- BZOJ 4036 [HAOI2015] Set 解题报告
首先我们不能一位一位的考虑,为什么呢? 你想想,你如果一位一位地考虑的话,那么最后就只有 $n$ 个数字,然而他给了你 $2^n$ 个数字,怎么看都不对劲呀.(我是因为这样子弄没过样例才明白的) 所以 ...
随机推荐
- IE8.0登录Oracle EBS后报Oracle error 1403错
IE8.0登录Oracle EBS后报错,登录页面打开没有问题.只是输入username和password然后登录,遇到下面错误: <PRE>Oracle error 1403: java ...
- 【Unity 3D 游戏开发】Unity3D 入门 - 工作区域介绍 与 入门演示样例
一. 工作区域具体解释 1. Scence视图 (场景设计面板) scence视图简单介绍 : 展示创建的游戏对象, 能够对全部的游戏对象进行 移动, 操作 和 放置; -- 演示样例 : 创建一个球 ...
- Development of Intel chipsets interconnection
http://en.wikipedia.org/wiki/Chipset Chipset From Wikipedia, the free encyclopedia A chipset is ...
- Yii之路(第八)
[URL地址美化]给域名地址做一个别名伪静态.通过设置服务器服务.做域名地址的转换工作. urlManager地址美化,通过程序的方式实现地址的美化工作 http://xxxxx.com/index. ...
- Object类及其常用方法简介
https://www.cnblogs.com/wxywxy/p/6740277.html Object类是一个特殊的类,是所有类的父类,如果一个类没有用extends明确指出继承于某个类,那么它默认 ...
- Android经常使用的工具类
主要介绍总结的Android开发中经常使用的工具类,大部分相同适用于Java. 眼下包含HttpUtils.DownloadManagerPro.ShellUtils.PackageUtils. Pr ...
- RDLC后台自己定义报表模板
首先封装一个公共类,统一来操作RDLC报表 using System; using System.Collections.Generic; using System.Linq; using Syste ...
- UDP 端到端
创建发送端 1.建立DatagramSocket对象,该端点建立,系统会随机分配一个端口,如果不想随机分配,可手动指定. 2.将数据进行packet封装,必须指定目的地址和端口. 3.通过socket ...
- POJ3680 Intervals —— 区间k覆盖问题(最小费用流)
题目链接:https://vjudge.net/problem/POJ-3680 Intervals Time Limit: 5000MS Memory Limit: 65536K Total S ...
- Codeforces Round #106 (Div. 2) D. Coloring Brackets —— 区间DP
题目链接:https://vjudge.net/problem/CodeForces-149D D. Coloring Brackets time limit per test 2 seconds m ...