time limit: 1 sec memory limit: 162 mb
submit: 10700 solved: 4440
[submit][status][discuss]
p教授要去看奧運,但是他捨不下他的玩具,於是他決定把所有的玩具運到北京。他使用自己的壓縮器進行壓
縮,其可以將任意物品變成一堆,再放到一種特殊的一維容器中。p教授有編號為1...n的n件玩具,第i件玩具經過
壓縮後變成一維長度為ci.為了方便整理,p教授要求在乙個一維容器中的玩具編號是連續的。同時如果乙個一維容
器中有多個玩具,那麼兩件玩具之間要加入乙個單位長度的填充物,形式地說如果將第i件玩具到第j個玩具放到一
個容器中,那麼容器的長度將為 x=j-i+sigma(ck) i<=k<=j 製作容器的費用與容器的長度有關,根據教授研究,
如果容器長度為x,其製作費用為(x-l)^2.其中l是乙個常量。p教授不關心容器的數目,他可以製作出任意長度的容
器,甚至超過l。但他希望費用最小.
第一行輸入兩個整數n,l.接下來n行輸入ci.1<=n<=50000,1<=l,ci<=10^7
輸出最小費用
5 4342
141**:
//dp[i]=min(dp[j]+(i-j-1+sum[i]-sum[j]-m)^2),展開之後顯然滿足斜率優化。
#include#include
#include
using
namespace
std;
typedef
long
long
ll;const
int maxn=50009
;int
n,m,que[maxn];
ll sum[maxn],dp[maxn];
ll getdp(
int i,int
j)ll getup(
int j,int
k)ll getlow(
int j,int
k)int
main()
int head=0,tail=0
; que[tail++]=0
;
for(int i=1;i<=n;i++)
printf(
"%lld\n
",dp[n]);
}return0;
}
BZOJ 1010 斜率優化dp
題意 n個玩具,每個長度ci,要把他們都放到容器中。如果同一容器中放多個玩具,這些玩具必須編號連續,且相鄰兩個玩具之間要加乙個長度為1的填充物。如乙個容器長度為x,其製作費用為 x l 2,l是給出的常數 問總費用最少多少。tags 還是沒搞懂,看神犇 強行敲的。大概理解 斜率優化是針對有f i f...
玩具裝箱 bzoj1010 斜率優化
斜率優化的題好像都是這樣的方程 左邊關於j,k的乙個 的式子,右邊是個只與i有關的可算的數字 然後把它放到二維座標軸上,用單調佇列維護乙個凸殼,o n 的複雜度 這道題但是我發現我wrong了,找了程式看了一下,才發現斜率優化還有一點沒理解 才明白上午t2能a是由於資料太水,出題人萬歲!1 incl...
BZOJ1010 玩具裝箱toy(斜率優化)
p教授要去看奧運,但是他捨不下他的玩具,於是他決定把所有的玩具運到北京。他使用自己的壓縮器進行壓縮,其可以將任意物品變成一堆,再放到一種特殊的一維容器中。p教授有編號為1.n的n件玩具,第i件玩具經過壓縮後變成一維長度為ci.為了方便整理,p教授要求在乙個一維容器中的玩具編號是連續的。同時如果乙個一...