BZOJ 1010 斜率優化dp

2022-08-20 11:18:13 字數 1225 閱讀 9754

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教授要求在乙個一維容器中的玩具編號是連續的。同時如果乙個一...