• [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  

  • 相关阅读:
    简洁的JS代码片段
    1020. 飞地的数量
    Celery分布式任务队列
    C# 之 OpenFileDialog的使用
    Toad for SQL Server 优化记录
    go windows 后台运行
    Pytorch源代码完全解析S1
    Mybatis Plus动态代理源码分析
    Python常用脚本
    CocosCreator基于jenkins自动构建
  • 原文地址:https://www.cnblogs.com/qxyzili--24/p/11755767.html
Copyright © 2020-2023  润新知