Luogu P1850 換教室 DP 期望

2022-05-12 11:42:12 字數 891 閱讀 2931

題目鏈結

題目好長啊,也化簡不了

考慮dp

設\(f[i][j][0/1]\)為從\(1\)到\(i\)交換\(j\)個(不一定成功),當前換或者不換的耗費體力值的總和的期望

先用floyd把任意兩點之間的距離求出

然後進行dp

分當前點選與不選進行分類

具體看注釋

**和注釋如下:

#includeusing namespace std;

const int maxn=2010;

int n,m,v,e;

int ci[maxn],di[maxn];

double p[maxn],tu[500][500],f[maxn][maxn][2];

int main()

for(int k=1;k<=v;k++) for(int i=1;i<=v;i++) for(int j=1;j<=v;j++)

tu[i][j]=min(tu[i][j],tu[i][k]+tu[k][j]);

for(int i=1;i<=n;i++) for(int j=0;j<=m;j++) for(int k=0;k<=1;k++)

f[i][j][k]=0x3f3f3f3f;

f[1][0][0]=0.0;f[1][1][1]=0.0;

for(int i=2;i<=n;i++) for(int j=0;j<=m && j<=i;j++)

}double ans=0x3f3f3f3f;

for(int i=0;i<=m;i++) ans=min(ans,min(f[n][i][0],f[n][i][1]));

printf("%.2lf",ans);

return 0;

}

Luogu P1850換教室(期望DP)

題目鏈結 又一道面向題解程式設計的噁心神題。真是叫人質壁分離 設f i j k 表示考慮了前i節課,嘗試了j次,當前申請結果為k時消耗的體力值。對於f i j 0 有兩種情況 一是我們的主角根本沒去申請換當前課,二是我們的主角嘗試了,但是failed so根據題面有以下幾種情況 1.當前的課不換的情...

P1850 換教室 概率dp

其實說是概率dp,本質上和dp沒什麼區別,就是把所有可能轉移的情況全列舉一下就行了,不過dp方程確實有點長。ps 這個題的floyed我竟然之前寫跪了。題目 題目描述 對於剛上大學的牛牛來說,他面臨的第乙個問題是如何根據實際情況申請合適的課程。在可以選擇的課程中,有 2n2n2n 節課程安排在 nn...

P1850 換教室 期望DP

對於剛上大學的牛牛來說,他面臨的第乙個問題是如何根據實際情況申請合適的課程。在可以選擇的課程中,有 2n2n2n 節課程安排在 nnn 個時間段上。在第 iii 1 i n1 leq i leq n1 i n 個時間段上,兩節內容相同的課程同時在不同的地點進行,其中,牛牛預先被安排在教室 cic i...