bzoj1003物流運輸 最短路 dp

2022-05-27 11:15:09 字數 1479 閱讀 2089

這題是道最優性問題,故考慮動態規劃。

動態規劃的狀態一般有兩種設法:

1.直接設某階段的最優值

2.某階段某值的存在性。

此題採用第一種。

某時刻的最優值只有兩種可能:

1.一直按照該時段的最短路跑(注意,是在該時段任何時候都存在的最短路)

2.從某時刻轉換航線(只轉換一次,其餘部分屬於已求出的最短路中的一部分)

所以我們只要求出每個時段的最短路,然後搞一搞就可以啦。

**:

1 #include2 #include3 #include4 #include5

using

namespace

std;67

const

int max_n=105;8

const

int max_m=25;9

const

int max_e=max_m*max_m*2;10

const

int inf=2e9;

1112

intn,m,k,e,x,y,z,d,p,a,b;

13int

tot,point[max_m],nxt[max_e],v[max_e],c[max_e];

14int dis[max_m]; bool

broken[max_m][max_n],vis[max_m],flag[max_m];

15int

f[max_n],cost[max_n][max_n];

16 queue q;

1718 inline void addedge(int x,int y,int

z)19

23 inline int

spfa()

2442}43

}44return

dis[m];45}

46int

main()

4754 scanf("

%d",&d);

55for (int i=1;i<=d;++i)

5660

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

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

6269

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

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

71if (cost[i][j]1

);72 memset(f,0x7f,sizeof

(f));

73for (int i=1;i<=n;++i) f[i]=cost[1

][i];

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

75for (int j=1;jj)

76 f[i]=min(f[i],f[j]+cost[j+1][i]+k);

77 printf("

%d\n

",f[n]);

78 }

最短路 bzoj1003 物流運輸

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

bzoj1003物流運輸 最短路 DP

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

bzoj1003物流運輸

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