hdu4336(壯壓DP 概率DP)

2021-08-04 09:59:56 字數 560 閱讀 4140

需要集齊n張卡片,每買一包零食,裡面可能有不同的卡片,存在每種卡片的概率已知,每包零食最多有一張卡片。問集齊n張的期望。

dp[i]表示i這個狀態下還需要多少包的期望,dp[(1《一開始不會寫,看了別的狀態轉移方程:dp[i]=sum(dp[i|(1《如果想得到一張卡片,期望就是 1/va[k]。 上面的方程和這個應該是乙個道理。因為i這個狀態可以由很多狀態得到 所以變成了sum(dp[i|(1<

#include#include#includeusing namespace std;

const int maxn = 22;

const int inf = 1<<21;

int n;

double va[maxn];

double dp[1<<20];

int main()

{ while(scanf("%d",&n)!=eof)

{double w = 0;

for(int i=0;i=0;i--)

{double s1 = 0;

double s2 = 0;

for(int j=0;j

hdu4336(概率DP 狀態壓縮)

題意 要收集n張卡片,得到每張卡片的概率為pi,所有的pi之和不一定為1 思路 這題的n只有20,所以可以用狀態壓縮,由於數學知識不給力,思路是隊友給的,設所有卡片的集合為u,已經擁有的卡片集合為s,初始態s 最終的狀態為s u,狀態轉移為dp i 1 p1 dp j1 p2 dp j2 其中dp ...

hdoj4336(容斥原理or概率DP)

題目大意 n種卡牌,每種卡牌被抽到的概率依次為p1,p2,pn,抽一次最多抽到一張,最少0張。問抽滿n種卡的次數的期望。用容斥原理來做,先單獨考慮,再減去重複的。比如有兩種卡牌a,b,分別為p1,p2,抽到a牌的期望為1 p1,抽到b牌的期望為1 p2,然而抽a牌時會有對b牌的重複,抽b牌亦然。根據...

bzoj1076 獎勵關 狀壓dp 概率dp

題意 給出n種物品,每種物品有牽制條件和價值,有k次選擇機會,每次每個物品等概率出現,問平均情況下最大收益。n 15 首先看到這個n的範圍和限制條件就應該想到是狀壓。定義陣列f i j 為當前處在第i次拋物品時間,狀態為j。但是如果我們僅僅這樣定義並正向轉移就會遇到乙個問題 我們是有可能從無效狀態推...