hdu4336Card Collector 概率dp+状态压缩
来源:互联网 发布:iphone6s屏幕检测软件 编辑:程序博客网 时间:2024/05/18 20:10
//给n个卡片每次出现的概率,求所有卡片都出现的需要抽的次数的期望
//dp[i]表示在状态的情况下到所有的卡片都出现的期望
//dp[i] = 1 + p1*dp[i] + ${p2[j]*dp[i]} + ${p3[k]*dp[i^(1<<k)]}
//$表示求和,p1表示没有出现卡片的概率 , p2[j]表示出现的卡片是当前状态已经出现的状态
//p3表示出现的卡片当前状态没有
//整理的dp[i] = (1 + ${p3[k]*dp[i^(1<<k)])/${p3[k]}
#include<cstdio>
#include<cstring>
#include<iostream>
using namespace std ;
const int maxn = 1 << 21 ;
double dp[maxn] ;
double p[21] ;
int main()
{
int n ;
while(~scanf("%d" , &n))
{
for(int i = 0;i < n;i++)
scanf("%lf" , &p[i]) ;
dp[0] = 0 ;
int lim = (1<<(n)) ;
for(int i = 1;i < lim;i++)
{
double sum = 0;
dp[i] = 1;
for(int j = 0;j < n;j++)
{
if((i&(1<<j)))
{
dp[i] += dp[i^(1<<j)]*p[j] ;
sum+=p[j];
}
}
dp[i]/=sum ;
}
printf("%lf\n" , dp[lim - 1]) ;
}
}
//dp[i]表示在状态的情况下到所有的卡片都出现的期望
//dp[i] = 1 + p1*dp[i] + ${p2[j]*dp[i]} + ${p3[k]*dp[i^(1<<k)]}
//$表示求和,p1表示没有出现卡片的概率 , p2[j]表示出现的卡片是当前状态已经出现的状态
//p3表示出现的卡片当前状态没有
//整理的dp[i] = (1 + ${p3[k]*dp[i^(1<<k)])/${p3[k]}
#include<cstdio>
#include<cstring>
#include<iostream>
using namespace std ;
const int maxn = 1 << 21 ;
double dp[maxn] ;
double p[21] ;
int main()
{
int n ;
while(~scanf("%d" , &n))
{
for(int i = 0;i < n;i++)
scanf("%lf" , &p[i]) ;
dp[0] = 0 ;
int lim = (1<<(n)) ;
for(int i = 1;i < lim;i++)
{
double sum = 0;
dp[i] = 1;
for(int j = 0;j < n;j++)
{
if((i&(1<<j)))
{
dp[i] += dp[i^(1<<j)]*p[j] ;
sum+=p[j];
}
}
dp[i]/=sum ;
}
printf("%lf\n" , dp[lim - 1]) ;
}
}
0 0
- hdu4336Card Collector 概率dp+状态压缩
- hdu4336Card Collector_概率dp
- hdu 4336 Card Collector 概率DP 状态压缩DP
- HDU 4336 Card Collector(状态压缩dp+概率dp)
- HDU 4336 Card Collector 状态压缩+概率DP
- hdu 4336 Card Collector 概率dp+状态压缩
- HDU 4336 Card Collector 状态压缩 概率DP
- hdu 4336 Card Collector(状态压缩概率dp)
- HDOJ4336Card Collector【概率dp求期望+状态压缩】
- HDU 4336Card Collector 概率dp 状态压缩
- HDU 4336 Card Collector(状态压缩+概率DP)
- Hdu 4336 Card Collector 概率DP+状态压缩
- hdu4336Card Collector
- HDU 4336 Card Collector 概率dp 状态压缩| 容斥原理
- 概率dp+状态压缩HDU4336
- hdu4336 Card Collector 状态压缩dp
- HDOJ 4336 Card Collector (状态压缩DP)
- 【HDU4336】Card Collector-状态压缩DP+期望DP
- 朴素贝叶斯
- Leetcode题解(1):L102/Binary Tree Level Order Traversal
- mac虚拟机跟win7共享文件
- ubuntu 10.04下的配置tftp服务器
- ios-系统字体一览UIFont
- hdu4336Card Collector 概率dp+状态压缩
- AutoCompleteTextView与Cursor的使用
- 学习汇编之段寄存器cs和ip以及debug的使用
- ab 发送post请求 测试API性能
- 浅析一个java对象初始化顺序问题
- openstack ceilometer
- Swift split
- linux下使用free命令查看实际内存占用
- UIWebView清除缓存