洛谷 P1850 換教室(期望dp)

2022-02-13 11:22:39 字數 1064 閱讀 9248

用dp[i][j][0/1]表示到第i節課、申請了j次,第i節課是否申請的最小體力和。

然後分別從dp[i-1][j][0]、dp[i-1][j][1],dp[i-1][j-1][0]、dp[i-1][j-1][1]瘋狂轉移過來。

先跑一邊floyd求最短路。

注意double無法用memset初始化。

具體看**吧。

比較易懂。

1 #include2 #include3 #include4 #include5 #include6 #include7 #include8 #include

9 #include10 #include11 #include12 #include13 #include14

using

namespace

std;

15int dis[305][305],n,m,v,e,c[2005],d[2005

];16

double dp[2005][2005][2],k[2005],ans=1000000;17

intmain()

1824}25

for(int i=1;i<=v;i++) dis[i][i]=0;26

for(int i=1;i<=n;i++) cin>>c[i];

27for(int i=1;i<=n;i++) cin>>d[i];

28for(int i=1;i<=n;i++) cin>>k[i];

29for(int i=1;i<=e;i++)

35for(int kk=1;kk<=v;kk++)40}

41}42for(int i=1;i<=n;i++)46}

47 dp[1][0][0]=dp[1][1][1]=0;48

for(int i=2;i<=n;i++)54}

55for(int i=0;i<=min(n,m);i++)

58 printf("

%.2lf

",ans);

59return0;

60 }

//noip2016提高組 day1 t3

P1850 換教室 期望DP

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

P1850 換教室 dp 期望

流下了不會概率的眼淚,由於不會概率,轉移少寫了點東西。這個dp很簡單,就是乙個普通的線性dp加點期望。剛開始寫這道題時信筆寫下 dp 0 1 i j 表示到第 i 個時間段時,已經申請了換 j 門課程的教室,當前申請0不換 1換教室的最小數學期望。注意,我們的狀態定義是申請,而不是已經申請成功,這樣...

洛谷P1850 換教室

傳送門啦 這是寫第乙個概率期望dp。一般看見這種題就想暴力了,看一下資料範圍,暴力應該還是挺好想的吧。24分注意到有6個測試點m 0m 0,則說明不能提出申請,那麼只需要求出全圖的兩兩之間的最短路,路徑唯一確定。52分注意到另外有7個測試點m 1m 1,只能提出一次申請。我們可以直接列舉在 提出申請...