概率期望dp入門題 遊戲

2022-08-12 22:51:17 字數 2101 閱讀 5455

題目

alice 和 bob 兩個人正在玩乙個遊戲,遊戲有很多種任務,難度為 p 的任務(p是正整數),有 1/(2^p) 的概率完成並得到 2^(p-1) 分,如果完成不了,得 0 分。一開始每人都是 0 分,從 alice 開始輪流做任務,她可以選擇任意乙個任務來做;而 bob 只會做難度為 1 的任務。只要其中有乙個人達到 n 分,即算作那個人勝利。求 alice 採取最優策略的情況下獲勝的概率。

輸入格式

乙個正整數 n ,含義如題目所述。

輸出格式

乙個數,表示 alice 獲勝的概率,保留 6 位小數。

樣例資料 1

輸入 1

輸出 0.666667

備註 【資料範圍】

對於 30% 的資料,n≤10

對於 100% 的資料,n≤500

我們選擇倒推(感覺好多期望概率dp都要倒推啊)

用a[i][j]表示alice有i分bob有j分時alice的獲勝概率

那麼就有4種可能

alice完成,bob未完成;alice未完成,bob完成;兩人都完成;兩人都未完成;

可以得到遞推式a[

i][j

]=ma

x((a

[l][

j]/k

/4+a

[l][

j+1]

/k/4

+a[i

][j+

1]∗(

k∗2−

1)/k

/4)/

(1.0

−1.0∗(

k∗2−

1.0)/k

/4)|

0<=

i<=n−

1;0<=

j<=n−

1)' role="presentation" style="position: relative">a[i

][j]

=max

((a[

l][j

]/k/

4+a[

l][j

+1]/

k/4+

a[i]

[j+1

]∗(k

∗2−1

)/k/

4)/(

1.0−

1.0∗(k

∗2−1.0)/

k/4)

|0<=

i<=n−

1;0<=

j<=n−

1)a[

i][j

]=ma

x((a

[l][

j]/k

/4+a

[l][

j+1]

/k/4

+a[i

][j+

1]∗(

k∗2−

1)/k

/4)/

(1.0

−1.0∗(

k∗2−

1.0)/k

/4)|

0<=

i<=n−

1;0<=

j<=n−

1)其中l=

k+i' role="presentation" style="text-align: center; position: relative">l=k

+il=

k+ik

=1;k

/2<=n;

k<<=

1' role="presentation" style="text-align: center; position: relative">k=1

;k/2

<=n;

k<<=1

k=1;

k/2<=n;

k<<=

1k是列舉alice選擇不同任務贏後的分數

**

#include

using

namespace

std;

double a[505][505];

int n;

int main()

a[i][j]=maxn;

}printf("%lf",a[0][0]);

}

概率DP 期望雜題

1.f i j 前i個人,有j個人正常出局的概率 f i j f i 1 j p1 f i 1 j 1 p2 留下來 被日死 正常出局 p 別人出局後自己被日死的概率 p2 1 p j 1 p1 1 p1 f i k p2 前k個過後都沒有被日死 最後再 inv 1 n 這一輪出局概率 includ...

學習筆記 期望DP題單 概率,期望DP

目錄貳 典例營 做過很多期望的題了,但是一直沒有系統地學習過期望,這幾天終於有時間攻堅這個重要但是對我而言難得一匹的問題了.實際上我 dp 也菜得一匹。傳送門 to oi wiki 一般我們使用 p x 表示 x 發生的概率,e x 表示 x 發生的期望。我們有兩者的關係 e x sum p x i...

期望概率 dp

p4316 綠豆蛙的歸宿 p1850 noip2016 提高組 換教室 p3802 小魔女帕琪 p5104 紅包發紅包 p4550 收集郵票 f i frac f i 1 frac f 1 g i frac g i f i 1 frac g f 1 p1291 shoi2002 百事世界盃之旅 p3...