任務安排(SDOI2012)斜率優化進階
題目描述
個任務排成一個序列在一臺機器上等待完成(順序不得改變),這
個任務被分成若干批,每批包含相鄰的若干任務。從時刻
開始,這些任務被分批加工,第
個任務單獨完成所需的時間是
。在每批任務開始前,機器需要啟動時間S,而完成這批任務所需的時間是各個任務需要時間的總和(同一批任務將在同一時刻完成)。每個任務的費用是它的完成時刻乘以一個費用係數
。
請確定一個分組方案,使得總費用最小。
資料規模
思路
首先,這還是個很明顯的劃分類
。
直接上狀態:
表示前i個任務分成j批的最小代價。
易得
但是這個狀態已經是
級別的了
/-----------華---------麗-----------麗---------的-----------分---------割---------線-----------/
然後,我們會發現限制狀態的最大因素就是
。
整個轉移中唯一與j有關的就是
因此,我們是否可以想辦法將它去掉呢?
考慮在第i個任務結束後重新分一組,那麼對第
~
個任務的影響就是加上了
那麼,我們就可以將j這維狀態直接去掉
狀態就變成了:
表示前i個任務的最小代價
轉移:
-----------華---------麗-----------麗---------的-----------分---------割---------線-----------
然後,我們又發現,這是個非常經典的 動態規劃
顯然是無法通過 級別的資料。
考慮優化,對於一道一維狀態的 題,優化方向依然只有一個——轉移。
(否則把狀態優化了不就成了貪心嗎?)
如何減少重複或不必要的列舉呢?
設
則對於 的決策, 比 優等價於滿足
簡單的開啟並整理過後就得到了