P1850 換教室 數學期望,dp,Floyd

2021-09-10 08:56:11 字數 1355 閱讀 4017

一張圖,n

nn次,每次在c

ic_i

ci​上課,可以申請換課室到d

id_i

di​,成功概率k

ik_i

ki​。求最短需要走的路徑的期望長度

先f lo

dy

flody

flod

y預處理多源最短路,然後考慮dpdp

dp設fi,

j,0/

1f_

fi,j,0

/1​表示前i

ii次,已經申請了j

jj次,這次是否申請了,的最短期望長度。

為了方便我們定義lc=

ci−1

,ld=

di−1

,nc=

ci,n

d=di

lc=c_,ld=d_,nc=c_i,nd=d_i

lc=ci−

1​,l

d=di

−1​,

nc=c

i​,n

d=di​fi

,j,0

==\left\ f_+dis_ & \\ f_+k_*dis_+(1-k_)*dis_ \end\right.

fi,j,0

​==\left\ f_+k_i*dis_+(1-k_i)*dis_ & \\ f_+k_*k_i*dis_+(1-k_)*k_i*dis_+ k_*(1-k_i)*dis+(1-k_)*(1-k_i)*dis_ \end\right.

fi,j,1

​=for(

int ks=

1;ks<=v;ks++

)for

(int i=

0;i<=n;i++

)for

(int j=

0;j<=m;j++

) f[i]

[j][0]

=f[i]

[j][1]

=2147483647/3

; f[1]

[1][

1]=f[1][

0][0

]=0;

for(

int i=

2;i<=n;i++)}

} mins=

2147483647;if

(n==

1) mins=0;

for(

int j=

0;j<=m;j++

) mins=

min(mins,

min(f[n]

[j][0]

,f[n]

[j][1]

));printf

("%0.2lf"

,mins)

;}

洛谷P1850 換教室 數學期望 Floyd

調了一下午qaq 讓我對數學期望的理解又提公升了乙個層次。首先,我們發現 v 3 00,這樣我們就可以用 fl oyd 演算法來 o n3 處理出任意兩點間的最短路。對於題目,我們不難列出狀態dp i j 0 1 這個狀態代表 走到第 i個點,用了 j次機會,當前使用了 0表示未使用,1表示使用 機...

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換教室的最小數學期望。注意,我們的狀態定義是申請,而不是已經申請成功,這樣...