ZJOI2006 物流運輸(最短路 dp)

2021-08-13 08:53:22 字數 953 閱讀 3583

題目位址

題目大意:n天,m個碼頭,從1到m點的最短路徑,給出連通路徑及運輸成本,

不過有時碼頭禁止通過,可能要改變路線,每次改變路線要k元成本,求n天運輸最低成本

思路:一開始對於題意的理解有點問題。是每天從1-m走一趟,相鄰兩天不能走同一條路的話就加k元,看了題解的解釋,是最短路徑+dp問題,處理過程有點麻煩,但是因為資料量小,所以並不是很難,可以先求出假如從i天到第j天走的是同一條路的話,最小花費,跟最短路徑一樣,只需要加一步判斷,路在第i到j天能否都能用進行選擇就行,然後進行天數dp,求出最小值就可,總的感覺這個題還是挺有意思的,有點難度,也因著這個題,複習了一下最短路徑問題~

**:

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

int n,m,k,e,ans[101],st[21][101],fa[22],p[2000],s[2000],next[2000];

int look[22],dp[105][105],what[100];

int dfs(int be,int en,int poit)}}

return dis[m];

}int aa(int x,int y)

}int main()

scanf("%d",&e);

while(e--)

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

for(int j=i;j<=n;j++)

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

ans[i]=dp[1][i];

for(int i=2;i<=n;i++)

for(int j=i;j<=n;j++)

ans[j]=min(ans[j],ans[i-1]+dp[i][j]+k);

printf("%d\n",ans[n]);

}}

ZJOI2006 物流運輸 最短路 dp

如果本題沒有換線路要k的花費這個條件,很明顯就是直接列舉天數,每次都跑乙個最短路即可。但是現在有這個條件,我們就要加上dp的思想,來分段決策。解法 1.列舉起始天和終止天,然後排除這個範圍內無法一直有效的點,跑一遍最短路,用cost i j 記錄此時到達港口m的最小花費。2.進行一次dp,dp i ...

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

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

ZJOI2006 物流運輸

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