[洛谷P1850]換教室 概率與期望
題目←
要分清哪些狀態是獨立的,哪些狀態對期望有影響
一開始傻傻的在通過和沒通過之間取min……
事實上,在求期望的前提下,真正影響的決策是是否申請
以及萬萬沒想到Floyd打次了
map[i][i] = 0才對
發現當前時間段的狀態僅僅可以由上一時間段的狀態轉移來
上一時間段的情況可能有以下幾種
1、申請了換教室,過
2、申請了換教室,沒過
3、沒申請換教室
如果沒有概率且我們要求的只是最大/最小值,就在換、未換兩種情況裡取min
但發現我們每個時間段需要做的決策不是換/不換
而是申請/不申請
(1、2兩種狀態不是我們能夠決策的,他們出現的概率已經確定)
所以每個時間點就申請/不申請劃分狀態
dp[i][j][0/1]表示i時間段,總共申請了j段,而第i段申請/未申請
來梳理狀態間的關係:
設
求i - 1 ~ i距離的時候,可能出現的狀況有:
1、第i - 1時間段在
2、第i - 1時間段在
3、第i - 1時間段在
4、第i - 1時間段在
當階段i我們選擇不申請時:
第i時間段在
第i時間段在
若從第i - 1階段未申請的狀態轉移過來
第i - 1時間段在
第i - 1時間段在
綜上,這個轉移為
dp[i][j][0] = dp[i - 1][j][0]
+ map[
+ map[
+ map[
+ map[
類比一下,若從i - 1申請了的狀態轉移過來
第i時間段在
第i時間段在
第i - 1時間段在
第i - 1時間段在
這個轉移為
dp[i][j][0] = dp[i - 1][j][1]
+ map[
+ map[
+ map[
+ map[
繼續類比
當階段i我們選擇申請時:
轉移同樣有兩種可能,i - 1申請/未申請
i - 1未申請時:
第i時間段在
第i時間段在
第i - 1時間段在
第i - 1時間段在
這個轉移為:
dp[i][j][0] = dp[i - 1][j][0]
+ map[
+ map[
+ map[
+ map[
若從i - 1申請轉來
第i時間段在
第i時間段在
第i - 1時間段在
第i - 1時間段在
這個轉移為:
dp[i][j][0] = dp[i - 1][j][0]
+ map[
+ map[