CPOJ 2018.10.19提高測試 垃圾機器人 (litter)

在這裏插入圖片描述
考慮對每一條路徑差分,以此計算每個點ii在每輪中第kk個撿的貢獻:
costi,k=(1+4)ai          (k=1)costi,k=((k+1)2k2)ai=(2k+1)ai          (k>1) cost_{i,k}=(1+4)a_i\;\;\;\;\;(k=1)\\ cost_{i,k}=((k+1)^2-k^2)a_i=(2k+1)a_i\;\;\;\;\;(k>1)
所以一個點在這一輪中越早撿貢獻越少
所以枚舉撿了tt輪,最遠的nt+1nn-t+1\sim n個垃圾在這輪中第一個撿,以此類推
一開始想當然地用了dp,把一個區間裏的垃圾放在同一裏撿,而貪心是把一個區間裏的垃圾放在每一輪的同一
Code

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