题目描述
物流公司要把一批货物从码头A运到码头B。由于货物量比较大,需要n天才能运完。货物运输过程中一般要转停好几个码头。物流公司通常会设计一条固定的运输路线,以便对整个运输过程实施严格的管理和跟踪。由于各种因素的存在,有的时候某个码头会无法装卸货物。这时候就必须修改运输路线,让货物能够按时到达目的地。但是修改路线是—件十分麻烦的事情,会带来额外的成本。因此物流公司希望能够订一个n天的运输计划,使得总成本尽可能地小。
(1≤n≤100)、m(1≤m≤20) ( 1 ≤ n ≤ 100 ) 、 m ( 1 ≤ m ≤ 20 )
题意:
给你一张图要求你走n次的从1到m的路径,每次有一些点不可走,相邻两次若路径不同则有额外代价,求最小代价。
题解
看到 m 只有 20 ,可以想到状压,但本人太弱不知道如何很好的实现。
于是我们就来普通的dp吧。
这里一个很烦人的点就是每次都有点不能走,给我们判断最优解带来很大困扰,所以状态的设计至关重要。
假设我们一天天来看,我们不知道今天这条路径应该怎样走,因为合并两个相邻天的答案很困难,且由于可能有多种不同的最短路存在,我们不好判断最优解。
所以我们应该将一段天看成一个整体来跑最短路。所以很容易设出以下状态: