hdu 4336 Card Collector (容斥 or dp)
来源:互联网 发布:软件开发平台 编辑:程序博客网 时间:2024/06/14 08:02
题目:http://acm.hdu.edu.cn/showproblem.php?pid=4336
大致题意:我们需要收集n张卡片,在每一个袋子里出现卡片对应的概率是
分析:最开始自己用容斥做的,从简单的情况入手,
保证收集到卡片1——
保证收集到卡片2——
保证收集到卡片1或者卡片2——
把这两张卡片统统收集到——交集部分的概率,对应次数:
奇加偶减,容斥。
code:
#include <iostream>#include <cstdio>using namespace std;double f[25];int main(){ int n; while(cin>>n){ for(int i=0;i<n;i++) scanf("%lf",&f[i]); double ans=0,s=0; int g; for(int i=1;i<(1<<n);i++){ g=0; s=0; for(int j=0;j<n;j++) { if(i&(1<<j)) { g++; s=s+f[j]; } } if(g&1) ans=ans+1/s; else ans=ans-1/s; } printf("%.5lf\n",ans); } return 0;}
但是不会概率dp毕竟是不足,以学习的心态开始了第二种做法:
期望=
收集到x张卡片的期望:
即在y状态下能收集到+不能收集到
经过化简:
解释
code:
#include <iostream>#include <cstdio>#include <cstring>using namespace std;double dp[(1<<20)+10],p[25];int main(){ int n; while(cin>>n){ for(int i=0;i<n;i++) scanf("%lf",&p[i]); memset(dp,0,sizeof(dp)); for(int i=(1<<n)-2;i>=0;i--){ // start at (1<<n)-2 dp[(1<<n)-2] is answer for (1<<n)-1 double t=0; for(int j=0;j<n;j++){ if(i&(1<<j)) continue; // i digit must be 0 dp[i]=dp[i]+p[j]*dp[i|(1<<j)]; // for y: j digit change to 0 t=t+p[j]; } dp[i]=(dp[i]+1)/t; } printf("%.5lf\n",dp[0]); } return 0;}
0 0
- hdu 4336 Card Collector (容斥 or dp)
- HDU 4336 Card Collector(容斥原理 or 状压求期望dp)
- hdu - 4336 - Card Collector - 容斥 || 概率dp
- hdu 4336 Card Collector (期望dp|容斥原理)
- hdu 4336 Card Collector(概率dp, 容斥原理)
- HDU 4336 Card Collector (容斥原理||概率DP)
- hdu 4336 Card Collector (容斥原理)
- [容斥]HDU 4336 Card Collector
- HDU 4336 Card Collector (容斥 期望)
- HDU 4336 Card Collector(容斥)
- hdu 4336 Card Collector(概率DP 或 容斥原理)
- Hdu 4336 Card Collector (状态概率DP|容斥原理)
- HDU 4336 Card Collector (概率DP 或 容斥原理)
- HDU 4336 Card Collector 概率dp 状态压缩| 容斥原理
- HDU 4336 Card Collector(状压期望DP || 容斥原理)
- HDU-4336 Card Collector(状压概率DP||容斥原理)
- HDU 4336 Card Collector 数学期望(容斥原理)
- Hdu 4336 Card Collector (容斥原理 循环)
- ubuntu下安装wine 以及windows exe
- Android第一个应用程序:SayHello
- 理解js中的this对象
- 分数规划
- RGBD物体识别(5)--ubuntu同时使用OpenCV2.4.X和3.X终极解决办法
- hdu 4336 Card Collector (容斥 or dp)
- 关于类加载的一道面试题
- SVD综述和Mahout中实现
- hdu 1358 Period
- jquery自制折叠菜单
- 操作系统基础知识总结(二)
- 扩展Fibonacci数
- 如何修改eclipse中Tomcat默认的发布路径
- 造成软件复杂性的原因