hdu 4336(状压+期望dp)
2017-10-10 19:42
309 查看
传送门
题意:有n(1<=n<=20)张卡片,每包中含有卡片的概率为p1,p2……pn。每包最多有一张卡片,可能没有卡片。求需要买多少包才能凑齐N张卡片,求次数的期望。
真是把2016NOIP两道压轴题的算法都用到了!第一次见到状压和期望一起考的。此题比较水,直接枚举卡片倒推即可。
题意:有n(1<=n<=20)张卡片,每包中含有卡片的概率为p1,p2……pn。每包最多有一张卡片,可能没有卡片。求需要买多少包才能凑齐N张卡片,求次数的期望。
真是把2016NOIP两道压轴题的算法都用到了!第一次见到状压和期望一起考的。此题比较水,直接枚举卡片倒推即可。
#include<cstdio> #include<cstring> #include<iostream> #include<algorithm> using namespace std; const int MAXN=21; int n; double p[MAXN],dp[1<<MAXN]; int main() { while (~scanf("%d",&n)) { for (int i=0;i<n;++i) scanf("%lf",&p[i]); int mx=1<<n; for (int i=mx-2;~i;--i) { double sum=1,cnt=0; for (int j=0;j<n;++j) if (!(i&(1<<j))) sum+=dp[i|(1<<j)]*p[j],cnt+=p[j]; dp[i]=sum/cnt; } printf("%.5lf\n",dp[0]); } return 0; }
相关文章推荐
- HDU 4336 Card Collector(状压期望DP || 容斥原理)
- HDU 4336 Card Collector(容斥原理 or 状压求期望dp)
- Card Collector - HDU 4336 状压期望dp
- HDU-4336 Card Collector(状压概率DP||容斥原理)
- 期望dp-hdu-4336-Card Collector
- hdu 4336 Card Collector (期望dp|容斥原理)
- [HDU] 4336 Card Collector 期望dp
- [HDU 4336] Card Collector (期望DP)
- hdu 4336 dp求期望(状态压缩)
- HDU 4336 Card Collector (状压+概率DP)
- HDU-4336-期望dp-bit
- 期望dp-hdu-4336-Card Collector
- hdu 4336 Card Collector (概率与期望+状压DP)
- HDU 4336 概率DP求期望(or容斥原理)
- hdu 4336 概率dp + 状压
- hdu 4336 全期望公式+状态压缩+概率dp
- hdu 4336 概率dp + 状压
- hdu 4336 Card Collector (概率dp+位运算 求期望)
- ★HDU 4336 Card Collector 详细题解(状压求期望)
- hdu 4336 Card Collector(期望 dp 状态压缩)