BZOJ 1096 ZJOI2007 倉庫建設

2022-08-21 03:03:09 字數 900 閱讀 7275

$dp_i$ 表示在 $i$ 處建乙個倉庫之後的最小花費。

轉移方程為

$dp_i = \min \^p_k\times(x_i-x_k)+c_i\}=\min \^p_k-\sum\limits_^ p_kx_k+c_i\}$

設 $g_i=-\sum \limits_^i p_jx_j$,$p_i$ 變成字首和。

轉移方程變成 $dp_i=\min\-p_)+g_-g_j+c_i\}$,就可以斜率優化了,斜率是 $p_$ 保證遞增,那麼就有決策單調性,用雙端佇列即可。

#include #define ll long long

using

namespace

std;

namespace

io

while (ch >= '

0' && ch <= '

9')

x *=f;

}} using

namespace

io;const

int n = 1e6 + 7

;ll x[n], p[n], c[n], g[n], dp[n];

intque[n];

inline ll x(

inti)

inline ll y(

inti)

inline

double k(int i, int

j) int

main()

int l = 1, r = 1

;

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

printf(

"%lld\n

", dp[n]);

return0;

}

view code

bzoj 1096 ZJOI2007 倉庫建設

time limit 10 sec memory limit 162 mb submit 3607 solved 1582 submit status discuss l公司有n個工廠,由高到底分布在一座山上。如圖所示,工廠1在山頂,工廠n在山腳。由於這座山處於高原內 陸地區 乾燥少雨 l公司一般把...

bzoj 1096 ZJOI2007 倉庫建設

l公司有n個工廠,由高到底分布在一座山上。如圖所示,工廠1在山頂,工廠n在山腳。由於這座山處於高原內陸地區 乾燥少雨 l公司一般把產品直接堆放在露天,以節省費用。突然有一天,l公司的總裁l先生接到氣象部門的 被告知三天之後將有一場暴雨,於是l先生決定緊急在某些工廠建立一些倉庫以免產品被淋壞。由於地形...

bzoj1096 ZJOI2007 倉庫建設

1a系列。用f i 表示在 i 這個點建立倉庫的,前i個工廠的貨物都能藏起來的最小費用。顯然f i c i min w j,i f j 其中 w j,i 表示把 j i 的貨物都運到 i 的費用 w j,i k j 1i p k x i x k x i k j 1ip k k j 1ip k x k...