Gym - 101190D Delight for a Cat(費用流)

題意:在n個小時中,貓要麼在睡覺,要麼在吃東西,不能同時進行,但是要求每相鄰的k個小時,貓睡覺的時間不能小於ms,吃東西的時間不能小於me,給出每個小時吃東西和睡覺的收益,求最大收益。

想了好久的上下限,但是好像沒辦法做,也可以是我太菜了。

看題解也想了好久,果然是我太菜了嗎。。。。

考慮一開始全在睡覺,那麼要求我們找出一些時間點來,使滿足限制的條件下,收益最大。

我們用第i個點來表示第i個小時,準確說是以這個點爲結尾的k個小時。

首先對每個長度爲k的區間,必須有ms的時間是在睡覺的,所以可以支配的時間是n-ms,我們把這些時間作爲最大流量。

然後在n-ms可以支配的時間中,最多有n-ms-me的時間還是在睡覺,所以每個點向下一個點連一條邊,流量爲n-ns-me,這條邊的流量表示在以這個點爲結尾的k個小時中,有多少小時在繼續睡覺。然後每個點向之後的k個點連一條流量爲1的邊,費用爲這個小時吃東西的收益減去睡覺的收益,因爲這個小時睡覺了,所有包含這個小時的點的睡覺時間都減一,所以連向K個小時之後。

感覺這個題最巧妙的地方就是,用流量的分流來表示不同的選擇。

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章