题目链接

hdu4336

题解

最值反演

也叫做\(min-max\)容斥,在计算期望时有奇效

\[max\{S\} = \sum\limits_{T \in S} (-1)^{|T| + 1}min\{T\}
\]

证明:

记\(S = \{a_i\}\),其中对于\(i < j\)有\(a_i < a_j\)

那么我们计算每一个\(a_i\)的贡献,有

\[\begin{aligned}
\sum\limits_{T \in S} (-1)^{|T| + 1}min\{T\} &= \sum\limits_{i = 1}^{n}a_i\sum\limits_{j = 0}^{n - i}(-1)^{j}{n - i \choose j}\\
&= \sum\limits_{i = 1}^{n}a_i[n - i = 0]\\
&= \sum\limits_{i = 1}^{n}a_i[n = i]\\
&= a_n\\
&= max\{S\}
\end{aligned}
\]

证毕

对于此题,我们想要求出所有卡片集合\(S\)中最晚出现的卡片的期望,就转化为计算\(S\)的所有子集中最早出现的期望

对于一个集合\(T\),显然出现一张卡片的期望为

\[\frac{1}{\sum\limits_{i \in T}p_i}
\]

枚举子集计算即可

复杂度\(O(2^n)\)

#include<algorithm>
#include<iostream>
#include<cstring>
#include<cstdio>
#include<cmath>
#include<map>
#define Redge(u) for (int k = h[u],to; k; k = ed[k].nxt)
#define REP(i,n) for (int i = 1; i <= (n); i++)
#define mp(a,b) make_pair<int,int>(a,b)
#define cls(s) memset(s,0,sizeof(s))
#define cp pair<int,int>
#define LL long long int
using namespace std;
const int maxn = 25,maxm = 100005,INF = 1000000000;
double p[maxn],ans;
int n;
int main(){
while (~scanf("%d",&n)){
REP(i,n) scanf("%lf",&p[i]);
int maxv = (1 << n) - 1; ans = 0;
for (int s = 1; s <= maxv; s++){
int cnt = 0; double tmp = 0;
for (int e = s,j = 1; e; e >>= 1,j++)
if (e & 1) cnt++,tmp += p[j];
ans += (cnt & 1) ? 1 / tmp : -1 / tmp;
}
printf("%.8lf\n",ans);
}
return 0;
}

hdu4336 Card Collector 【最值反演】的更多相关文章

  1. hdu 4336 Card Collector——最值反演

    题目:http://acm.hdu.edu.cn/showproblem.php?pid=4336 点集中最早出现的元素的期望是 min ,最晚出现的元素的期望是 max :全部出现的期望就是最晚出现 ...

  2. [HDU4336]Card Collector(min-max容斥,最值反演)

    Card Collector Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)To ...

  3. hdu4336 Card Collector 状态压缩dp

    Card Collector Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Tota ...

  4. hdu4336 Card Collector 概率dp(或容斥原理?)

    题意: 买东西集齐全套卡片赢大奖.每个包装袋里面有一张卡片或者没有. 已知每种卡片出现的概率 p[i],以及所有的卡片种类的数量 n(1<=n<=20). 问集齐卡片需要买东西的数量的期望 ...

  5. hdu4336 Card Collector

    Problem Description In your childhood, do you crazy for collecting the beautiful cards in the snacks ...

  6. hdu4336 Card Collector(概率DP,状态压缩)

    In your childhood, do you crazy for collecting the beautiful cards in the snacks? They said that, fo ...

  7. [HDU4336]:Card Collector(概率DP)

    题目传送门 题目描述 夏川的生日就要到了.作为夏川形式上的男朋友,季堂打算给夏川买一些生日礼物.商店里一共有种礼物.夏川每得到一种礼物,就会获得相应喜悦值$W_i$(每种礼物的喜悦值不能重复获得).每 ...

  8. hdu4336 Card Collector MinMax 容斥

    题目传送门 https://vjudge.net/problem/HDU-4336 http://acm.hdu.edu.cn/showproblem.php?pid=4336 题解 minmax 容 ...

  9. HDU-4336 Card Collector 概率DP

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4336 题意:买食品收集n个卡片,每个卡片的概率分别是pi,且Σp[i]<=1,求收集n个卡片需要 ...

随机推荐

  1. NO 18---- webpack 4.x 使用遇到的问题以及开发配置

    最近在项目中用webpack的过程中老是出现问题,很是纳闷,按理说一直这样使用没有问题啊,经过我研究后发现,是因为在webpack更新到4.x之后,操作方式与之前相比变化很大.而我们使用npm默认安装 ...

  2. 【LeetCode算法题库】Day5:Roman to Integer & Longest Common Prefix & 3Sum

    [Q13] Roman numerals are represented by seven different symbols: I, V, X, L, C, D and M. Symbol Valu ...

  3. Spring学习(4)IOC容器配置bean:定义与实例化

    一.  IOC容器配置 1. 一些概念 (1)IOC容器: 定义:具有管理对象和管理对象之间的依赖关系的容器. 作用:应用程序无需自己创建对象,对象由IOC容器创建并组装.BeanFactory是IO ...

  4. Java创建对象的动作分析

    一.Java创建对象时将对象存放到内存的堆中. 创建对象时先执行类成员的初始化,然后才会调用构造函数初始化对象, package com.test.createsort; public class C ...

  5. M1阶段的开发过程的一些反思

    今天八组队伍都做了项目的展示,和他们相比,我们的团队项目是显得最单薄的了,这里面的原因很多,固然我们团队整体的实力 比较弱,但是我们在M1项目开发过程中的种种错误表现也是导致我们项目失利的重要原因.下 ...

  6. 个人作业4——alpha阶段个人总结(201521123003 董美凤)

    一.个人总结 在alpha 结束之后, 每位同学写一篇个人博客, 总结自己的alpha 过程: 请用自我评价表:http://www.cnblogs.com/xinz/p/3852177.html 有 ...

  7. T4模板_T4基本结构

    T4文本模板由 指令块.文本块.控制块 组成. 一. 指令块(MSDN文本模板指令) 指令块以@开头,基本的指令块包括<#@ template #> .<#@ parameter# ...

  8. es6箭头函数的注意要点

    具有一个参数的简单函数 var single = a => a single('hello, world') // 'hello, world' 没有参数的需要用在箭头前加上小括号 var lo ...

  9. asp.net简述WP开发模式

    详情请参考菜鸟教程:http://www.runoob.com/aspnet/aspnet-tutorial.html 1.ASP.NET 是一个使用 HTML.CSS.JavaScript 和服务器 ...

  10. Scrum 项目 4.0-5.0-约教网站开发(一)

    ----------------------------------4.0----------------------------------------------- 一.项目任务 1.准备看板. ...