懶,粘位址
我也是看了題解才會做
看著資料範圍,很容易想到狀壓
然後,設\(f[i][j]\)表示當前第\(i\)輪,狀態為\(j\)的期望
列舉當前掉出來哪乙個物品
然後。。。。怎麼轉移???
當前物品如果原來出現過,,我也不知道出現了幾次呀。。。
根本找不到上一次的狀態
然後\(hzwer\)告訴我們,倒著來
設這樣的話,狀態倒過來推,我們就只需要往上加東西的狀態即可
#include#include#include#include#include#include#include#include#include#includeusing namespace std;
#define max 120
inline int read()
int k,n;
int w[max];
int way[max];
double f[max][1<<16];
int main()
} for(int i=k;i;--i)
for(int j=0;j<(1
return 0;
}
bzoj1076 獎勵關 期望dp
題目傳送門 題目大意 總共有k次彈出寶物的機會,寶物共有n種,彈出不同的寶物的概率相同的,是每個寶物都有價值,和選擇這個寶物的限制 必須具有特定的寶物 問最後的最優期望是多少。思路 正向推概率,反向推期望。一看資料範圍就知道肯定是狀壓。這裡推薦乙個大佬的部落格 考慮f i j j為二進位制數,表示在...
BZOJ 1076 獎勵關 狀態壓縮DP
題目大意 寶物一共有n種,系統每次丟擲這n種寶物的概率都相同且相互獨立。也就是說,即使前k 1次系統都丟擲寶物1 這種情況是有可能出現的,儘管概率非常小 第k次丟擲各個寶物的概率依然均為1 n。獲取第i種寶物將得到pi 分,但並不是每種寶物都是可以隨意獲取的。第i種寶物有乙個前提寶物集合si。只有當...
BZOJ1076 獎勵關(狀壓期望dp)
好像noip一眼看去,全是dp。題面題意 有k個回合,n個物品,每回合隨機掉乙個物品i,有p i 的價值。可以選擇撿或不撿。對於每件物品,若想撿它,都要撿完它的先決物品,問最大期望價值。n 15,k 100。大概就是個狀壓dp,用f s i 表示i回合選了集合s的物品,所得到的最大期望。若每回合都必...