ZJOI2006 物流運輸 最短路 dp

2021-08-08 18:37:51 字數 1026 閱讀 5431

如果本題沒有換線路要k的花費這個條件,很明顯就是直接列舉天數,每次都跑乙個最短路即可。但是現在有這個條件,我們就要加上dp的思想,來分段決策。

解法:1.列舉起始天和終止天,然後排除這個範圍內無法一直有效的點,跑一遍最短路,用cost[i][j]記錄此時到達港口m的最小花費。

2.進行一次dp,dp[i]代表的是第i天開始到第n天的最小花費,邊界為dp[n + 1] = -k。然後從第n天當成起始天,開始向後列舉,列舉終止天。轉移方程為:dp[i] = min(dp[i], dp[j + 1] + cost[i][j] * (j - i + 1) + k).

**如下:

#include#include#include#include#include#include#include#include#include#include#include#includeusing namespace std;

typedef pairpii;

const int maxn = 25;

const int inf = 1e7;

int n, m, k, e;

int dis[maxn], dp[105];

int vst[maxn][105], cost[105][105];

bool flag[25];

vector edge[maxn];

void dijkstra()

} }}void build(int front, int back)

} }}int main()

int d;

scanf("%d", &d);

while(d--)

} for(int i = 1; i <= n; i++)

} memset(dp, 0x3f, sizeof(dp));

dp[n + 1] = -k;

for(int i = n; i; i--)

} printf("%d\n", dp[1]);

return 0;

}

ZJOI2006 物流運輸(最短路 dp)

題目位址 題目大意 n天,m個碼頭,從1到m點的最短路徑,給出連通路徑及運輸成本,不過有時碼頭禁止通過,可能要改變路線,每次改變路線要k元成本,求n天運輸最低成本 思路 一開始對於題意的理解有點問題。是每天從1 m走一趟,相鄰兩天不能走同一條路的話就加k元,看了題解的解釋,是最短路徑 dp問題,處理...

ZJOI2006 物流運輸 動態規劃 最短路

題意 傳送門 題解 這個題首先每個時間都有乙個最短路,也就是每天都有最短路,如果不要更換路線的話,那麼答案就是每次的最短路,但是現在更換路線有了花費,並且似乎看上去很是麻煩,但是實則並不麻煩,只需要考慮的是到了這個時間是不是應該換線,但是這樣是否太片面了呢?只考慮當天,那這樣對後面豈不是有可能將最優...

ZJOI2006 物流運輸

description 物流公司要把一批貨物從碼頭a運到碼頭b。由於貨物量比較大,需要n天才能運完。貨物運輸過程中一般要轉停好幾個碼頭。物流公司通常會設計一條固定的運輸路線,以便對整個運輸過程實施嚴格的管理和跟蹤。由於各種因素的存在,有的時候某個碼頭會無法裝卸貨物。這時候就必須修改運輸路線,讓貨物能...