[ZJOI2006]物流运输

题面

  戳这里

题目分析

  我觉的这题用到的思想还是蛮新的QAQ

  有的时候某个码头会无法装卸货物。这时候就必须修改运输路线,让货物能够按时到达目的地。但是修改路线是—件十分麻烦的事情,会带来额外的成本。因此物流公司希望能够订一个n天的运输计划,使得总成本尽可能地小。

  什么意思?

  难道要跑n遍最短路吗?

  很显然是错误的。【蓝题怎么可能这么水?

  怎么证明?

    简单说明一下,首先假设我们有这样一张图,上面有一条最短路 L 和次短路 R

    然后我们来假设一种情况,k=+∞  

    最短路能在单数时间跑,偶数时间这条路上的点有无法走到的,而次短路能在任何时间跑到。

    显然全程跑次短路要优的多。

  虽然证明的很潦草,但是最起码证明上面思路是错误的了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  

原文地址:https://www.cnblogs.com/qxyzili--24/p/11755767.html