按照解題報告的提示,用容斥原理實現
for(int j=bg+1;j另解:概率dp,康哥指導的
#include#include#includeusing namespace std;
double f[1<<21],gl[22];
int main()
{ int i,j,k,n;
double fz,fm;
while(~scanf("%d",&n))
{ for(i=0;i=0;i--)
{ fz=1;fm=0;
for(k=0;k>k&1)==0)
{
fz+=gl[k]*f[i|(1<
hdoj4336(容斥原理or概率DP)
題目大意 n種卡牌,每種卡牌被抽到的概率依次為p1,p2,pn,抽一次最多抽到一張,最少0張。問抽滿n種卡的次數的期望。用容斥原理來做,先單獨考慮,再減去重複的。比如有兩種卡牌a,b,分別為p1,p2,抽到a牌的期望為1 p1,抽到b牌的期望為1 p2,然而抽a牌時會有對b牌的重複,抽b牌亦然。根據...
hdu4336(概率DP 狀態壓縮)
題意 要收集n張卡片,得到每張卡片的概率為pi,所有的pi之和不一定為1 思路 這題的n只有20,所以可以用狀態壓縮,由於數學知識不給力,思路是隊友給的,設所有卡片的集合為u,已經擁有的卡片集合為s,初始態s 最終的狀態為s u,狀態轉移為dp i 1 p1 dp j1 p2 dp j2 其中dp ...
hdu4336(壯壓DP 概率DP)
需要集齊n張卡片,每買一包零食,裡面可能有不同的卡片,存在每種卡片的概率已知,每包零食最多有一張卡片。問集齊n張的期望。dp i 表示i這個狀態下還需要多少包的期望,dp 1 一開始不會寫,看了別的狀態轉移方程 dp i sum dp i 1 如果想得到一張卡片,期望就是 1 va k 上面的方程和...