期望dp 入入門

2021-08-09 14:23:43 字數 2064 閱讀 4842

poj 炸了….過個把星期才能好…先刷一下hdu上的題

期望dp

這一類題,簡單的說就是求期望。

一般都是從後往前推,因為最後的狀態和值我們知道…

通過例題來了解~

loops hdu - 3853

題意:求從(1,1)走到(r,c)的期望,每個位置有三個選擇,原地不動,向右走,向下走,概率分別是(c1,c2,c3)。

分析:

dp[r][c]=0;

dp[i][j]=c1*dp[i][j]+c2*dp[i][j+1]+c3*dp[i+1][j]

遞推是由已知推未知,右邊的dp[i][j]未知,轉移到左邊

dp[i][j]=(c2*dp[i][j+1]+c3*dp[i+1][j])/(1-c1);

然後從後往前推就行了,這裡注意分母不能是0,特判一下1-c1為0的情況

#include 

#include

#include

#include

#include

using namespace std;

#define ll long long

#define mem(a,b) memset(a,b,sizeof(a))

const int maxn = 1e3+10;

double c1[maxn][maxn],c2[maxn][maxn],c3[maxn][maxn],dp[maxn][maxn];

int main()

dp[i][j]=(c2[i][j]*dp[i][j+1]+c3[i][j]*dp[i+1][j]+2)/(1.0-c1[i][j]);

}printf("%.3f\n",dp[1][1]);

}return 0;

}

aeroplane chess hdu - 4405

題意:一種遊戲,在一維座標中,從0點出發,每次都會搖股子,有1,2,3,4,5,6這幾種,搖到哪個就前進幾個整點,比如x點,搖到了2點,就到了x+2點上。

其中還有幾個飛行航線,比如(x,y)意思就是在x點可以直接跳到y點,不用搖股子。到n點,或者大於n點就算贏,問贏的期望。

分析:和大富翁遊戲是不是有點像~

如果沒有飛行航線的話,那麼就和上面題目一樣了,狀態方程為:

dp[i]=(1.0/6.0)*(dp[i+1]+dp[i+2]+dp[i+3]+dp[i+4]+dp[i+5]+dp[i+6])+1.0;

這個飛行航線,只用將dp[x]=dp[y]就行了~

#include 

#include

#include

#include

#include

#include

using

namespace

std;

#define ll long long

#define mem(a,b) memset(a,b,sizeof(a))

const

int maxn = 1e5+10;

double dp[maxn];

int vis[maxn];

vector

v[maxn];

int main()

for(int i=0;i<=n;i++) v[i].clear();

for(int i=0;iint x,y;

scanf("%d %d",&x,&y);

v[y].push_back(x);

}for(int j=0;j//因為可能直接跳到n點的

dp[v[n][j]]=dp[n];

vis[v[n][j]]=1;

}for(int i=n-1;i>=0;i--)

vis[i]=1;

}printf("%.4f\n",dp[0]);

}return

0;}

codeforces 867d

這個期望dp還是沒有想明白……

概率期望dp入門題 遊戲

題目 alice 和 bob 兩個人正在玩乙個遊戲,遊戲有很多種任務,難度為 p 的任務 p是正整數 有 1 2 p 的概率完成並得到 2 p 1 分,如果完成不了,得 0 分。一開始每人都是 0 分,從 alice 開始輪流做任務,她可以選擇任意乙個任務來做 而 bob 只會做難度為 1 的任務。...

期望及期望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...

Poj 2096 dp求期望 入門

dp求期望的題。題意 乙個軟體有s個子系統,會產生n種bug。某人一天發現乙個bug,這個bug屬於某種bug,發生在某個子系統中。求找到所有的n種bug,且每個子系統都找到bug,這樣所要的天數的期望。需要注意的是 bug的數量是無窮大的,所以發現乙個bug,出現在某個子系統的概率是1 s,屬於某...