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