bzoj4036[HAOI2015]set 按位或
Vfk的集合幂级数论文的例题….随机集合并为全集的期望集合数….这篇题解里的东西基本来自vfk的论文.
首先根据期望的线性性,我们把需要走第1步的概率(一定为1)加上需要走第2步的概率(等于走了第一步之后没有得到全集的概率)加上需要走第3步的概率(等于走了两步之后没有得到全集的概率)….一直加到需要走正无穷步的概率就是期望的步数.那么走了x步之后没有得到全集的概率等于走了x步之后得到不是全集的集合的概率之和.那么我们用集合并卷积定义乘法,把给出的概率视作集合幂级数,求集合幂级数的等比数列之和,把除了全集一项的其他项的值加起来就是答案.
集合幂级数的莫比乌斯变换和莫比乌斯反演:从f[]数组求得F[]数组,使得F[x]=sigma{f[j],j&x==j},F[]称作f[]的莫比乌斯变换,f[]称作F[]的莫比乌斯反演.
集合幂级数的等比数列之和不容易直接求,但集合幂级数的莫比乌斯变换的等比数列之和易求,而且集合幂级数的莫比乌斯变换的等比数列之和就是集合幂级数的等比数列之和的莫比乌斯变换,我们莫比乌斯反演回来就得到了集合幂级数的等比数列之和.
那么我们只要能快速求解集合幂级数的莫比乌斯反演和莫比乌斯变换,问题就解决了.
Vfk论文里的快速莫比乌斯变换(FMT):
for(i=;i<n;++i)
for(j=;j<(<<n);++j)
if(j&(<<i))f[j]+=f[j^(<<i)];
快速莫比乌斯反演:
for(i=;i<n;++i)
for(j=;j<(<<n);++j){
if(j&(<<i))f[j]-=f[j^(<<i)];
两个过程基本相同,快速反演相当于把快速变换的过程倒了过来.
我们直接在f数组上运算,算法结束后f数组中保存原数组的莫比乌斯变换或莫比乌斯反演.
莫比乌斯变换其实相当于n维前缀和,莫比乌斯反演其实相当于n维差分.也可以用DP来理解。集合并卷积还算是集合幂级数中比较良心易懂的东西.
智商着急现场:http://liu-runda.blog.uoj.ac/blog/2360
bzoj4036[HAOI2015]set 按位或的更多相关文章
- 「HAOI2015」按位或
「HAOI2015」按位或 解题思路 : 这类期望题一眼 \(\text{Min-Max}\) 容斥,只需要稍微推一下如何求 \(E(minS)\) 即可. \[ E(minS) = \frac{1} ...
- BZOJ4036 [HAOI2015]按位或 FWT
原文链接https://www.cnblogs.com/zhouzhendong/p/BZOJ4036.html 题目传送门 - BZOJ4036 题意 刚开始你有一个数字 $0$ ,每一秒钟你会随机 ...
- BZOJ4036 HAOI2015按位或(概率期望+容斥原理)
考虑min-max容斥,改为求位集合内第一次有位变成1的期望时间.求出一次操作选择了S中的任意1的概率P[S],期望时间即为1/P[S]. 考虑怎么求P[S].P[S]=∑p[s] (s&S& ...
- BZOJ4036 [HAOI2015]按位或 【minmax容斥 + 期望 + FWT】
题目链接 BZOJ4036 题解 好套路的题啊,,, 我们要求的,实际上是一个集合\(n\)个\(1\)中最晚出现的\(1\)的期望时间 显然\(minmax\)容斥 \[E(max\{S\}) = ...
- [BZOJ4036] [HAOI2015]按位或
传送门:https://lydsy.com/JudgeOnline/problem.php?id=4036 Description 刚开始你有一个数字0,每一秒钟你会随机选择一个[0,2^n-1]的数 ...
- bzoj4036 [HAOI2015]按位或 状压DP + MinMax 容斥
题目传送门 https://lydsy.com/JudgeOnline/problem.php?id=4036 题解 变成 \(2^n-1\) 的意思显然就是每一个数位都出现了. 那么通过 MinMa ...
- LOJ#2127「HAOI2015」按位或
用$ Min-Max$容斥之后要推的东西少了好多 无耻的用实数快读抢了BZOJ.Luogu.LOJ三个$ OJ$的Rank 1 即将update:被STO TXC OTZ超了QAQ 题意:集合$ [0 ...
- 【LOJ】#2127. 「HAOI2015」按位或
题解 听说这是一道论文题orz \(\sum_{k = 1}^{\infty} k(p^{k} - p^{k - 1})\) 答案是这个多项式的第\(2^N - 1\)项的系数 我们反演一下,卷积变点 ...
- 【LOJ2127】「HAOI2015」按位或
题意 刚开始你有一个数字 \(0\),每一秒钟你会随机选择一个 \([0,2^n-1]\) 的数字,与你手上的数字进行或操作.选择数字 \(i\) 的概率是 \(p[i]\) . 问期望多少秒后,你手 ...
随机推荐
- Codeforces 1154E Two Teams
题目链接:http://codeforces.com/problemset/problem/1154/E 题目大意: 有n个队员,编号1~n,每个人的能力各自对应1~n中的一个数,每个人的能力都不相同 ...
- 详解 RestTemplate 操作
转载自:https://blog.csdn.net/itguangit/article/details/78825505 作为开发人员,我们经常关注于构建伟大的软件来解决业务问题.数据只是软件完成工作 ...
- FindBugs-IDEA插件的使用
前言 Findbugs很多人都并不陌生,Eclipse中有插件可以帮助查找代码中隐藏的bug,IDEA中也有这款插件.这个插件可以帮助我们查找隐藏的bug,比较重要的功能就是查找潜在的null指针. ...
- 协程和异步io
一. 并发.并行.同步.异步.阻塞.非阻塞 1.并发:是指一个时间段中有几个程序都处于已启动运行到运行完毕之间,且这几个程序都是在同一个处理机(CPU)上运行,但任一个时刻点上只有一个程序在处理机上运 ...
- kubernetes资源类别介绍
类别 名称 资源对象 Pod.ReplicaSet.ReplicationController.Deployment.StatefulSet.DaemonSet.Job.CronJob.Horizon ...
- AngularJS从入门到精通
第一 AngularJS的四大特性 1. MVC 例如:使用angularjs向模板传递数据 <!doctype html> <html> <head> <m ...
- vue事件綁定
事件綁定可以是一個句子,一個函數名稱,也可以是一個函數. 事件修飾符,按鍵修飾符.
- java 中的迭代
package cn.zhou.com; import java.util.ArrayList; import java.util.Collection; import java.util.Itera ...
- SpringBoot之文件上传
package org.springboot.controller; import org.apache.logging.log4j.LogManager; import org.apache.log ...
- jdk6使用WebSocket
pom.xml <dependency> <groupId>org.java-websocket</groupId> <artifactId>Java- ...