BZOJ1003 ZJOI2006 物流運輸

2022-05-07 20:03:06 字數 1212 閱讀 5151

洛谷

bzoj

設\(f_i\)表示前\(i\)天花費的最小值。

我們設第\(l,r\)天\(1\)到\(m\)的距離為\(dis_\),這個可以\(n^2\)遍最短路求出。

那麼轉移就很顯然了:

\[f_i=\min_^ f_j+dis_\times (i-j)+k

\]注意初值\(f_0=-k\),因為第一次更改不算貢獻。

#include #include #include #include #include #include #include using namespace std; 

const int max_n = 1e3 + 5;

struct graph e[max_n << 1];

int fir[max_n], e_cnt;

void add_edge(int u, int v, int w) ;

fir[u] = e_cnt++;

}const int inf = 1e9;

int n, m, k, e, d;

bool run[max_n][max_n], ok[max_n], inq[max_n];

int dis[max_n][max_n], ds[max_n];

void spfa(int l, int r)

queueque;

for (int i = 1; i <= m; i++) ds[i] = inf, inq[i] = 0;

ds[1] = 0, inq[1] = 1, que.push(1);

while (!que.empty())

} inq[x] = 0;

} dis[l][r] = ds[m];

}long long f[max_n];

int main ()

scanf("%d", &d);

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

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

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

spfa(i, j);

f[0] = -k;

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

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天才能運完。貨物運輸過程中一般要轉 停好幾個碼頭。物流公司通常會設計一條固定的運輸路線,以便對整個運輸過程實施嚴格的管理和跟蹤。由於各種 因素的存在,有的時...