J Sushi 題解(期望dp

2022-06-10 17:45:09 字數 1019 閱讀 8763

給你n個盤子,每個盤子可能有1,2,3個披薩

你選到每個盤子的概率是一樣的。

你如果選到空的盤子什麼都不做

如果你選到有披薩的盤子則吃掉乙個披薩

求吃完所有披薩的期望

設現在還有u個1個盤子的披薩,v個2.....,z個3....

則顯然吃掉下乙個披薩的概率為(u+v+w)/n則期望為n/(u+v+w)

那麼顯然公式就是下面這樣

\(dp[u][v][w]=n/(u+v+w)+u/(u+v+w)*dp[u-1][v][w]+v/(u+v+w)*dp[u+1][v-1][w]+w/(u+v+w)*dp[u][v+1][w-1]\)

直接記憶化搜尋dp

#include#include#include#include#include#include#include#include#include#include#include#include#define fi first

#define se second

#define debug printf(" i am here\n");

using namespace std;

typedef long long ll;

typedef unsigned long long ull;

typedef pairpii;

const ll inf=0x3f3f3f3f3f3f3f3f;

const int maxn=3e2+5,inf=0x3f3f3f3f,mod=1e9+7;

const double eps=1e-10;

int n,a[maxn];

double dp[maxn][maxn][maxn];

int x,y,z;

double dfs(int u,int v,int w)

int main()else if(a[i]==2)else

}printf("%.10f",dfs(x,y,z));

return 0;

}

POJ2096題解 期望dp

1.有無數個bug 2.將無數個bug分為n種,s類 3.期望意義上,多少天能至少在n種s類裡都找到乙個bug 這道題和hdu4336很像。原子操作 atom operation 為每天找出乙個bug,這個bug 有可能是已找出的i種bug中的一種,這個概率為i n 有可能是已找出的j類bug中的一...

期望及期望dp

簡單說就是概率 概率的價值 osu x 1 3 x3 3x2 3x 1 可以看出每多出乙個1,答案就會增加3x2 3x 1 於是可以維護x和x2的期望 x1 i x1 i 1 1 p i x2 i x2 i 1 2 x1 i 1 1 p i ans i ans i 1 3 x2 i 1 3 x1 i...

期望dp小結

前言 期望dp狀態的定義是較為顯然的,但對於狀態的轉移往往需要一些公式的推導。關鍵的幾點是狀態之間的互通性,和狀態轉移的花費,以及轉移的概率 解決期望dp的幾個技巧如下 e x y e x e y 我們所求的期望可以化為多個步驟的期望累和 相關題目 j,l 在目標確定的情況下,可以得知在目標到達目標...