题解

听说这是一道论文题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反演回去就行

代码

  1. #include <iostream>
  2. #include <cstdio>
  3. #include <cstring>
  4. #include <algorithm>
  5. #include <cmath>
  6. #include <ctime>
  7. #include <vector>
  8. //#define ivorysi
  9. #define MAXN 2000005
  10. #define eps 1e-8
  11. #define mo 974711
  12. #define pb push_back
  13. #define mp make_pair
  14. #define pii pair<int,int>
  15. #define fi first
  16. #define se second
  17. using namespace std;
  18. typedef long long int64;
  19. typedef unsigned int u32;
  20. typedef double db;
  21. const int64 MOD = 998244353;
  22. int N,L;
  23. db P[MAXN],F[MAXN];
  24. bool dcmp(db a,db b) {
  25. return fabs(a - b) < eps;
  26. }
  27. template <class T>
  28. void FMT(T *a,T ty) {
  29. for(int i = 1 ; i < L ; i <<= 1) {
  30. for(int j = 0 ; j < L ; ++j) {
  31. if(j & i) {
  32. a[j] = a[j] + ty * a[j ^ i];
  33. }
  34. }
  35. }
  36. }
  37. int main() {
  38. #ifdef ivorysi
  39. freopen("f1.in","r",stdin);
  40. #endif
  41. scanf("%d",&N);
  42. L = 1 << N;
  43. for(int i = 0 ; i < L ; ++i) scanf("%lf",&P[i]);
  44. FMT(P,1.0);
  45. for(int i = 0 ; i < L ; ++i) {
  46. if(dcmp(1.0,P[i])) F[i] = 0;
  47. else F[i] = -1/(1 - P[i]);
  48. }
  49. FMT(F,-1.0);
  50. if(dcmp(F[L - 1],0)) puts("INF");
  51. else printf("%.6lf\n",F[L - 1]);
  52. return 0;
  53. }

【LOJ】#2127. 「HAOI2015」按位或的更多相关文章

  1. LOJ#2127「HAOI2015」按位或

    用$ Min-Max$容斥之后要推的东西少了好多 无耻的用实数快读抢了BZOJ.Luogu.LOJ三个$ OJ$的Rank 1 即将update:被STO TXC OTZ超了QAQ 题意:集合$ [0 ...

  2. loj#2128. 「HAOI2015」数字串拆分 矩阵乘法

    目录 题目链接 题解 代码 题目链接 loj#2128. 「HAOI2015」数字串拆分 题解 \(f(s)\)对于\(f(i) = \sum_{j = i - m}^{i - 1}f(j)\) 这个 ...

  3. 「HAOI2015」按位或

    「HAOI2015」按位或 解题思路 : 这类期望题一眼 \(\text{Min-Max}\) 容斥,只需要稍微推一下如何求 \(E(minS)\) 即可. \[ E(minS) = \frac{1} ...

  4. 【LOJ2127】「HAOI2015」按位或

    题意 刚开始你有一个数字 \(0\),每一秒钟你会随机选择一个 \([0,2^n-1]\) 的数字,与你手上的数字进行或操作.选择数字 \(i\) 的概率是 \(p[i]\) . 问期望多少秒后,你手 ...

  5. Loj #2192. 「SHOI2014」概率充电器

    Loj #2192. 「SHOI2014」概率充电器 题目描述 著名的电子产品品牌 SHOI 刚刚发布了引领世界潮流的下一代电子产品--概率充电器: 「采用全新纳米级加工技术,实现元件与导线能否通电完 ...

  6. Loj #3096. 「SNOI2019」数论

    Loj #3096. 「SNOI2019」数论 题目描述 给出正整数 \(P, Q, T\),大小为 \(n\) 的整数集 \(A\) 和大小为 \(m\) 的整数集 \(B\),请你求出: \[ \ ...

  7. Loj #3093. 「BJOI2019」光线

    Loj #3093. 「BJOI2019」光线 题目描述 当一束光打到一层玻璃上时,有一定比例的光会穿过这层玻璃,一定比例的光会被反射回去,剩下的光被玻璃吸收. 设对于任意 \(x\),有 \(x\t ...

  8. Loj #3089. 「BJOI2019」奥术神杖

    Loj #3089. 「BJOI2019」奥术神杖 题目描述 Bezorath 大陆抵抗地灾军团入侵的战争进入了僵持的阶段,世世代代生活在 Bezorath 这片大陆的精灵们开始寻找远古时代诸神遗留的 ...

  9. Loj #2542. 「PKUWC2018」随机游走

    Loj #2542. 「PKUWC2018」随机游走 题目描述 给定一棵 \(n\) 个结点的树,你从点 \(x\) 出发,每次等概率随机选择一条与所在点相邻的边走过去. 有 \(Q\) 次询问,每次 ...

随机推荐

  1. Java poi读取,写入Excel2003

    Java poi读取,写入Excel2003 相关阅读:poi读写Excel2007:http://www.cnblogs.com/gavinYang/p/3576741.htmljxl读写excel ...

  2. C++程序运行时间测定

    From:http://www.cnblogs.com/killerlegend/p/3877703.html Author:KillerLegend Date:2014.7.30 此处程序的测试时间 ...

  3. bzoj千题计划146:bzoj3295: [Cqoi2011]动态逆序对

    http://www.lydsy.com/JudgeOnline/problem.php?id=3295 正着删除看做倒着添加 对答案有贡献的数对满足以下3个条件: 出现时间:i<=j 权值大小 ...

  4. TPS低,CPU高--记一次storm压测问题排查过程

    一.业务背景+系统架构 本次场景为kafka+storm+redis+hbase,通过kafka的数据,进入storm的spout组件接收,转由storm的Bolt节点进行业务逻辑处理,最后再推送进k ...

  5. CSS3 颜色模式

    HSL .test{background-color:hsl(<length>, <percentage>, <percentage>);} 1.length 表示 ...

  6. Throwable、Error、Exception、RuntimeException 区别

    1.java将所有的错误封装为一个对象,其根本父类为Throwable, Throwable有两个子类:Error和Exception. 2.Error是Throwable 的子类,用于指示合理的应用 ...

  7. pandas空值处理与插值

    # coding:utf-8 import pandas as pd import numpy as np import matplotlib.pyplot as plt from scipy.int ...

  8. UNIX环境高级编程 第6章 系统数据文件和信息

    UNIX系统的正常运作需要用到大量与系统有关的数据文件,例如系统用户账号.用户密码.用户组等文件.出于历史原因,这些数据文件都是ASCII文本文件,并且使用标准I/O库函数来读取. 口令文件 /etc ...

  9. 翻译:CommonJS的wiki

    CommonJS的wiki资料原文 Modules/AsynchronousDefinition 异步定义的模块(国内一般叫AMD模块定义) STATUS: PROPOSAL 现状:提案 Implem ...

  10. Strusts2笔记8--文件的上传和下载

    文件的和上传和下载: (1)文件的上传: Struts是通过拦截器实现文件上传的,而默认拦截器栈中包含了文件上传拦截器,故表单通过Struts2可直接将文件上传,其底层是通过apache的common ...