期望反映了乙個隨機變數的平均結果,是所有可能結果的概率乘上結果的和。例如對於乙個隨機變數x,1/3機率變為1,1/3機率變為2,1/3機率變為3,則x的期望值為 13
∗1+1
3∗2+
13∗3
=21 3∗
1+13
∗2+1
3∗3=
2期望具有線性性質,我們可以根據加法原理和乘法原理來對期望進行計算
可以發現,最終方案是某種決策集合,而決策是沒有概率的,所以每個狀態應該取乙個最優決策的期望消費,而不是各種決策搞一下期望和什麼的,期望體力是確定的,能使期望體力不同是決策不同的原因
就是。。。乙個狀態只能由前面階段的乙個狀態轉移過來,因為乙個人不能同時處於兩種狀態,最終方案是每個決斷取了乙個決策構成的集合設f
(i,j
,0/1
) f(i
,j,0
/1
)表示到了第i節課,申請j次,第i節課是否申請的最小體力期望(申請需要一次提交)
那麼轉移就要在多重情況中取最優的,分別為:
i不申請,i-1申請成功具體的轉移方程看**吧。。。i不申請,i-1申請失敗
i申請成功,i-1申請成功
i申請成功,i-1申請失敗
i申請失敗,i-1申請成功
i申請失敗,i-1申請失敗
不提交任何申請
#include
#include
#include
#include
using
namespace
std;
#define debug(x) cerr << #x << "=" << x << endl;
const
int maxn = 2000 + 10;
int n,m,v,e,c[maxn],d[maxn];
double g[310][310],k[maxn],f[maxn][maxn][2],ans = 1e30;
void floyed()
void solve()
}int main()
for(int i=0; i<=n; i++)
for(int j=0; j<=m; j++)
f[i][j][0] = f[i][j][1] = 1e30;
for(int i=1; i<=e; i++)
floyed();
f[1][0][0] = 0;
f[1][1][1] = 0;
solve();
ans = 1e30;
for(int i=0; i<=m; i++)
ans = min(ans, min(f[n][i][0], f[n][i][1]));
printf("%.2lf",ans);
return
0;}
NOIP2016 換教室 期望DP
嗯,noip歷年真題什麼的,到處都有,抓一道就是三四倍經驗題,我就不寫題目描述了23333 偷個懶一定不會被人發現的 事實上,這是我第一次做概率與期望dp的題目,不是很懂套路,然後就想了很久很久,沒什麼太多的頭緒。首先我覺得應該是用f i j 儲存前i個時間段,申請換j次課,期望收穫到的疲勞值。但是...
NOIP2016 換教室 期望DP
傳送門 題解 本蒟蒻第一次知道期望是啥意思。很簡單,就是全部概率 價值求和 感覺期望差不多都和dp有關吧 設d p i j 0 1 dp i j 0 1 dp i j 0 1 表示選到第i節課,已經申請了換j節課,其中第i節選 不選的期望。dis用floyd處理一下即可。include includ...
noip2016換教室(期望dp
整體思路 這節課換了教室的期望路程 min 上節課換了教室的期望路程 上節課教室到這節課教室的期望路程,上節課沒換教室的期望路程 上節課教室到這節課教室的期望路程 這節課沒換教室的期望路程 min 上節課換了教室的期望路程 上節課教室到這節課教室的期望路程,上節課沒換教室的期望路程 上節課教室到這節...