bzoj1003 ZJOI2006 物流運輸

2021-08-18 01:16:49 字數 1339 閱讀 3783

物流公司要把一批貨物從碼頭a運到碼頭b。由於貨物量比較大,需要n天才能運完。貨物運輸過程中一般要轉 停好幾個碼頭。物流公司通常會設計一條固定的運輸路線,以便對整個運輸過程實施嚴格的管理和跟蹤。由於各種 因素的存在,有的時候某個碼頭會無法裝卸貨物。這時候就必須修改運輸路線,讓貨物能夠按時到達目的地。但是 修改路線是一件十分麻煩的事情,會帶來額外的成本。因此物流公司希望能夠訂乙個n天的運輸計畫,使得總成本 盡可能地小

1<=n<=100

1<=m<=20

同乙個碼頭有可能在多個時間段內不可用。但任何時間都存在至少一 條從碼頭a到碼頭b的運輸路線。

我怎麼這麼弱啊,不如定個小目標寫寫dp題好了

用w[i,j]記錄第i天到第j天的從起點到終點的最短路,f[i]表示前i天的最小花費,那麼就很顯然了

其實應該沒必要開ll,還有注意特判一下w為inf的情況

#include 

#include

#include

#define rep(i,st,ed) for (int i=st;i<=ed;++i)

#define fill(x,t) memset(x,t,sizeof(x))

typedef

long

long ll;

const

int inf=0x3f3f3f3f;

const

int n=2005;

const

int e=4005;

struct edge e[e];

intqueue[n],used[n][n];

int dis[n],vis[n];

int ls[n],edcnt;

ll f[n],w[n][n];

void add_edge(int x,int y,int w) ; ls[x]=edcnt;

e[++edcnt]=(edge) ; ls[y]=edcnt;

}int spfa(int st,int ed,int l,int r) }}

vis[now]=0;

}return dis[ed];

}int main(void)

int d; scanf("%d",&d);

rep(i,1,d)

rep(i,1,n) rep(j,1,m) used[i][j]+=used[i-1][j];

fill(w,31);

rep(i,1,n) rep(j,i,n)

rep(i,1,n)

rep(i,2,n)

}printf("%lld\n", f[n]);

return

0;}

BZOJ1003 ZJOI 物流運輸

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

BZOJ1003 ZJOI2006 物流運輸

time limit 10 sec memory limit 162 mb submit 6148 solved 2522 submit status discuss 物流公司要把一批貨物從碼頭a運到碼頭b。由於貨物量比較大,需要n天才能運完。貨物運輸過程中一般要轉 停好幾個碼頭。物流公司通常會設計...

bzoj 1003 zjoi2006 物流運輸

好吧。我坦白。因為題意有點很多地方不了解查了tijie description 物流公司要把一批貨物從碼頭a運到碼頭b。由於貨物量比較大,需要n天才能運完。貨物運輸過程中一般要轉 停好幾個碼頭。物流公司通常會設計一條固定的運輸路線,以便對整個運輸過程實施嚴格的管理和跟蹤。由於各種 因素的存在,有的時...