HDU 4336 Card Collector (概率dp)
2016-11-27 15:12
393 查看
容斥原理:奇数加偶数减。
#include<stdio.h>
#include<string.h>
#include<iostream>
#include<algorithm>
using namespace std;
double p[22];
int main()
{
int n;
while(scanf("%d",&n)==1)
{
for(int i=0;i<n;i++)scanf("%lf",&p[i]);
double ans=0;
for(int i=1;i<(1<<n);i++)
{
int cnt=0;
double sum=0;
for(int j=0;j<n;j++)
if(i&(1<<j))
{
sum+=p[j];//i为2进制,i都在这个包里的可能
cnt++;
}
if(cnt&1)ans+=1.0/sum;//把每个卡片看成一个单元,奇数加偶数减。
else ans-=1.0/sum;
}
printf("%.5lf\n",ans);
}
return 0;
}
#include<stdio.h>
#include<string.h>
#include<iostream>
#include<algorithm>
using namespace std;
double p[22];
int main()
{
int n;
while(scanf("%d",&n)==1)
{
for(int i=0;i<n;i++)scanf("%lf",&p[i]);
double ans=0;
for(int i=1;i<(1<<n);i++)
{
int cnt=0;
double sum=0;
for(int j=0;j<n;j++)
if(i&(1<<j))
{
sum+=p[j];//i为2进制,i都在这个包里的可能
cnt++;
}
if(cnt&1)ans+=1.0/sum;//把每个卡片看成一个单元,奇数加偶数减。
else ans-=1.0/sum;
}
printf("%.5lf\n",ans);
}
return 0;
}
相关文章推荐
- HDU 4336 Card Collector(概率DP)
- HDU-4336 Card Collector 容斥定理 Or 概率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 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 (状态压缩概率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 状态压缩DP
- hdu 4336 Card Collector 概率dp+状态压缩