[ZJOI2006]物流運輸

題面

  戳這裏html

題目分析

  我覺的這題用到的思想仍是蠻新的QAQspa

  有的時候某個碼頭會沒法裝卸貨物。這時候就必須修改運輸路線,讓貨物可以按時到達目的地。可是修改路線是—件十分麻煩的事情,會帶來額外的成本。所以物流公司但願可以訂一個n天的運輸計劃,使得總成本儘量地小。htm

  什麼意思?blog

  難道要跑n遍最短路嗎?get

  很顯然是錯誤的。【藍題怎麼可能這麼水?io

  怎麼證實?方法

    簡單說明一下,首先假設咱們有這樣一張圖,上面有一條最短路 L 和次短路 Rim

    而後咱們來假設一種狀況,k=+∞  數據

    最短路能在單數時間跑,偶數時間這條路上的點有沒法走到的,而次短路能在任什麼時候間跑到。img

    顯然全程跑次短路要優的多。

  雖然證實的很潦草,可是最起碼證實上面思路是錯誤的了QAQ

  那麼這道題究竟該怎麼作?

  我記得以前有一道模擬賽的題目?【這篇的T2其中T2跟這道題基本如出一轍的操做啊!

    拆掉什麼什麼的邊。

  咱們採起的解決方法就是----分塊

  那麼這道題能不能也分塊作呢?

  來嘗試嘗試吧。

  既然以前那道題要求的是連通塊的個數,咱們把點組分塊,那麼類比下來,這題要求最短路,咱們就把最短路分塊。

  把最短路的長度分紅從 i 到 j 這段時間的最短路,記 rdis[i][j]表示在 i 到 j 這段時間裏能走的最短路。【這題數據範圍這麼小,固然隨便亂搞

  而後,對於這種求最小值的問題,考慮二分答案?沒有範圍pass

  因此嘗試DP  

  定義dp[i]表示從1到 i 這段時間可以走的最短路

  那麼就能夠列出方程:

    dp[i] = min(dp[i] , dp[j] + rdis[j+1][i] * (i-j) +k; 【仔細想一想仍是蠻顯然的

  這裏有一個要注意的點:【我第一次dp列了一個二維的就是理解錯題意了。

    題面中有這樣一句話:

  總成本=n天運輸路線長度之和+K*改變運輸路線的次數。

  k到底是什麼?【靈魂拷問

  看一張圖

  究竟有幾個k?1 or 2?

  答案是 2 1 啊!!!!Σ(っ °Д °;)っ

  也就是說不管一天以內修改多少條路都是一個價格!!!! (╯' - ')╯︵ ┻━┻

  我調了一個小時!!!

 


 

不讀題一時爽,一直不讀題一直爽

  沒好好讀題就別讀了QAQ