[HDU4336]Card Collector(概率期望+状压dp)
来源:互联网 发布:大数据 百度百科 编辑:程序博客网 时间:2024/06/08 20:23
题目描述
传送门
题意:有n种卡片,一个包里会包含至多一张卡片,第i种卡片在某个包中出现的次数为pi,问将所有种类的卡片集齐需要买的包的期望。
注意存在某个包中一张也没有。
题解
f(i)表示得到的人物状态为i时的期望
然后枚举下一个状态,计算概率并转移
代码
#include<algorithm>#include<iostream>#include<cstring>#include<cstdio>#include<cmath>using namespace std;int n;double p[25],f[1<<21];void clear(){ memset(p,0,sizeof(p)); memset(f,0,sizeof(f));}int main(){ while (~scanf("%d",&n)) { clear(); for (int i=1;i<=n;++i) scanf("%lf",&p[i]),p[0]+=p[i]; p[0]=1.0-p[0]; f[(1<<n)-1]=0; for (int i=(1<<n)-2;i>=0;--i) { double P=p[0]; for (int j=0;j<n;++j) if ((i>>j)&1) P+=p[j+1]; else { int state=i|(1<<j); f[i]+=(f[state]+1.0)*p[j+1]; } f[i]=(f[i]+P)/(1.0-P); } printf("%.4lf\n",f[0]); }}
0 0
- [HDU4336]Card Collector(概率期望+状压dp)
- HDU4336-Card Collector(概率DP求期望)
- hdu4336 Card Collector(期望dp)
- hdu4336 Card Collector 状压+概率DP
- 【HDU4336】【Card Collector】【概率dp】
- 概率dp HDU4336 Card Collector
- hdu4336 Card Collector 概率dp(或容斥原理?)
- hdu 4336 Card Collector (概率与期望+状压DP)
- 【HDU4336】Card Collector-状态压缩DP+期望DP
- HDU 4336 Card Collector (概率-期望DP)【模板】
- hdu4336 Card Collector 状态压缩dp
- hdu 4336 Card Collector 概率DP 求期望
- Card Collector (概率dP)
- [HDU 4336] Card Collector (期望DP)
- HDU4336 Card Collector 【容斥原理】【数学期望】
- HDU 4336 Card Collector(概率dp+状压)
- HDU 4336 Card Collector(概率DP+状压)
- HDU 4336 Card Collector 状压+概率dp
- python学习(八):字符编码
- 解决listview onitemclick 点击无效问题
- ECNU CCCC选拔赛 E题 Teacher Panda and plagiarism dp
- 记在CSDN第一次留下印记
- java.lang.NumberFormatException: For input string: "" at java.lang.NumberFormatException.forInputSt
- [HDU4336]Card Collector(概率期望+状压dp)
- 树形dp
- C标准IO实现文件拷贝
- java中Object类
- python学习笔记(2):输入与输出
- 水平垂直居中
- 什么是数据挖掘??
- JavaScript 详说事件机制之冒泡、捕获、传播、委托
- HDU 2563 统计问题