【LOJ】#2127. 「HAOI2015」按位或
题解
听说这是一道论文题orz
\(\sum_{k = 1}^{\infty} k(p^{k} - p^{k - 1})\)
答案是这个多项式的第\(2^N - 1\)项的系数
我们反演一下,卷积变点积
\(\hat{f_{S}} = \sum_{k = 1}^{\infty} k(\hat{p_{S}}^{k} - \hat{p_{S}}^{k - 1})\)
这是个等比数列啊,怎么推呢= =
设答案为\(S\),如果我在相邻的两项之间
例如\(2(\hat{p_{S}}^{2} - \hat{p_{S}}^{1})\)
\((\hat{p_{S}}^{1} - \hat{p_{S}}^{0})\)每项多加一个\(\hat{p_{S}}^{k}\)再减去
最后会有一个\(\infty \hat{p}^{\infty} - \hat{p_{S}}^{0}\)
所以
\(S = \infty \hat{p}^{\infty} - \sum_{k = 0}^{\infty} \hat{p}^{k}\)
\(\hat{p}S = \infty \hat{p}^{\infty} - \sum_{k = 1}^{\infty} \hat{p}^{k}\)
上式减下式
\((1 - \hat{p})S = -1\)
\(S = - \frac{1}{1 - \hat{p}}\)
所以就有
\(\hat{f} = \left\{\begin{matrix}
-\frac{1}{1 - \hat{p}} & \hat{p} < 1\\
0 & \hat{p} = 1
\end{matrix}\right.\)
最后把F反演回去就行
代码
#include <iostream>
#include <cstdio>
#include <cstring>
#include <algorithm>
#include <cmath>
#include <ctime>
#include <vector>
//#define ivorysi
#define MAXN 2000005
#define eps 1e-8
#define mo 974711
#define pb push_back
#define mp make_pair
#define pii pair<int,int>
#define fi first
#define se second
using namespace std;
typedef long long int64;
typedef unsigned int u32;
typedef double db;
const int64 MOD = 998244353;
int N,L;
db P[MAXN],F[MAXN];
bool dcmp(db a,db b) {
    return fabs(a - b) < eps;
}
template <class T>
void FMT(T *a,T ty) {
    for(int i = 1 ; i < L ; i <<= 1) {
	for(int j = 0 ; j < L ; ++j) {
	    if(j & i) {
		a[j] = a[j] + ty * a[j ^ i];
	    }
	}
    }
}
int main() {
#ifdef ivorysi
    freopen("f1.in","r",stdin);
#endif
    scanf("%d",&N);
    L = 1 << N;
    for(int i = 0 ; i < L ; ++i) scanf("%lf",&P[i]);
    FMT(P,1.0);
    for(int i = 0 ; i < L ; ++i) {
	if(dcmp(1.0,P[i])) F[i] = 0;
	else F[i] = -1/(1 - P[i]);
    }
    FMT(F,-1.0);
    if(dcmp(F[L - 1],0)) puts("INF");
    else printf("%.6lf\n",F[L - 1]);
    return 0;
}
												
											【LOJ】#2127. 「HAOI2015」按位或的更多相关文章
- LOJ#2127「HAOI2015」按位或
		
用$ Min-Max$容斥之后要推的东西少了好多 无耻的用实数快读抢了BZOJ.Luogu.LOJ三个$ OJ$的Rank 1 即将update:被STO TXC OTZ超了QAQ 题意:集合$ [0 ...
 - loj#2128. 「HAOI2015」数字串拆分 矩阵乘法
		
目录 题目链接 题解 代码 题目链接 loj#2128. 「HAOI2015」数字串拆分 题解 \(f(s)\)对于\(f(i) = \sum_{j = i - m}^{i - 1}f(j)\) 这个 ...
 - 「HAOI2015」按位或
		
「HAOI2015」按位或 解题思路 : 这类期望题一眼 \(\text{Min-Max}\) 容斥,只需要稍微推一下如何求 \(E(minS)\) 即可. \[ E(minS) = \frac{1} ...
 - 【LOJ2127】「HAOI2015」按位或
		
题意 刚开始你有一个数字 \(0\),每一秒钟你会随机选择一个 \([0,2^n-1]\) 的数字,与你手上的数字进行或操作.选择数字 \(i\) 的概率是 \(p[i]\) . 问期望多少秒后,你手 ...
 - Loj #2192. 「SHOI2014」概率充电器
		
Loj #2192. 「SHOI2014」概率充电器 题目描述 著名的电子产品品牌 SHOI 刚刚发布了引领世界潮流的下一代电子产品--概率充电器: 「采用全新纳米级加工技术,实现元件与导线能否通电完 ...
 - Loj #3096. 「SNOI2019」数论
		
Loj #3096. 「SNOI2019」数论 题目描述 给出正整数 \(P, Q, T\),大小为 \(n\) 的整数集 \(A\) 和大小为 \(m\) 的整数集 \(B\),请你求出: \[ \ ...
 - Loj #3093. 「BJOI2019」光线
		
Loj #3093. 「BJOI2019」光线 题目描述 当一束光打到一层玻璃上时,有一定比例的光会穿过这层玻璃,一定比例的光会被反射回去,剩下的光被玻璃吸收. 设对于任意 \(x\),有 \(x\t ...
 - Loj #3089. 「BJOI2019」奥术神杖
		
Loj #3089. 「BJOI2019」奥术神杖 题目描述 Bezorath 大陆抵抗地灾军团入侵的战争进入了僵持的阶段,世世代代生活在 Bezorath 这片大陆的精灵们开始寻找远古时代诸神遗留的 ...
 - Loj #2542. 「PKUWC2018」随机游走
		
Loj #2542. 「PKUWC2018」随机游走 题目描述 给定一棵 \(n\) 个结点的树,你从点 \(x\) 出发,每次等概率随机选择一条与所在点相邻的边走过去. 有 \(Q\) 次询问,每次 ...
 
随机推荐
- Struts2框架基础概念总结
			
一.struts2框架 Struts2是一个基于MVC设计模式的Web应用框架,它本质上相当于一个servlet,在MVC设计模式中,Struts2作为控制器(Controller)来建立模型与视图的 ...
 - CF&&CC百套计划2 CodeChef December Challenge 2017 Total Diamonds
			
https://www.codechef.com/DEC17/problems/VK18 #include<cstdio> #include<iostream> #includ ...
 - 通过xshell/securecrt连接linux上传/下载文件
			
通过ssh等客户端连接远程linux总会有上传下载的需求,这里分别用Ubuntu和centos展示安装lrzsz软件的命令,使用命令是一致的,这里简单写 1.安装: centos:(注:参数-y中的意 ...
 - [转载]ECMA-262 6th Edition / Draft August 24, 2014 Draft ECMAScript Language Specification
			
http://people.mozilla.org/~jorendorff/es6-draft.html#sec-23.4 Draft Report Errors and Issues at: htt ...
 - [转载]WCF和ASP.NET Web API在应用上的选择
			
http://www.cnblogs.com/shanyou/archive/2012/09/26/2704814.html http://msdn.microsoft.com/en-us/libra ...
 - HDU 4311 Meeting point-1   求一个点到其它点的曼哈顿距离之和
			
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4311 解题报告:在一个平面上有 n 个点,求一个点到其它的 n 个点的距离之和最小是多少. 首先不得不 ...
 - 天梯赛   L2-002.  (模拟)    链表去重
			
题目链接 题目描述 给定一个带整数键值的单链表L,本题要求你编写程序,删除那些键值的绝对值有重复的结点.即对任意键值K,只有键值或其绝对值等于K的第一个结点可以被保留.同时,所有被删除的结点必须被保存 ...
 - 【NOI题解】【bzoj题解】NOI2008 bzoj1063 道路设计
			
@ACMLCZH学长出的毒瘤题T3.再也不是“善良”的出题人了. 题意:bzoj. 题解: 经典的树形DP题目,屡见不鲜了,然而我还是没有写出来. 这一类的题目有很多,例如这里的C题. 主要套路是把对 ...
 - Java高性能并发编程——线程池
			
在通常情况下,我们使用线程的时候就去创建一个线程,这样实现起来非常简便,但是就会有一个问题: 如果并发的线程数量很多,并且每个线程都是执行一个时间很短的任务就结束了,这样频繁创建线程就会大大降低系统的 ...
 - Python Webdriver 重新使用已经打开的浏览器实例
			
因为Webdriver每次实例化都会新开一个全新的浏览器会话,在有些情况下需要复用之前打开未关闭的会话.比如爬虫,希望结束脚本时,让浏览器处于空闲状态.当脚本重新运行时,它将继续使用这个会话工作.还就 ...