HNOI2008 玩具裝箱TOY

2021-08-04 23:44:20 字數 1076 閱讀 5393

題目描述

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

輸出格式:

輸出最小費用

輸入輸出樣例

輸入樣例#1:

5 4

3 4

2 1

4 輸出樣例#1:

1s[i]為字首和

g[i]=s[i]+i;

cmp為: ((

f[p]

+g[p

]2)−

(f[q

]+g[

q]2)

)/(2

∗(g[

p]−g

[q])

) 當cmp(p,q)< g[i]-l時

q比p更優

#include

#include

#define n 50010

using

namespace

std;

typedef

long

long ll;

int n,m,q[n],h,t,p;

ll f[n],s[n],g[n],num;

double cmp(int p,int q)

int main()

cout

<'\n';

}

HNOI2008 玩具裝箱toy

重點在講斜率優化 description p教授要去看奧運,但是他捨不下他的玩具,於是他決定把所有的玩具運到北京。他使用自己的壓縮器進行壓縮,其可以將任意物品變成一堆,再放到一種特殊的一維容器中。p教授有編號為1.n的n件玩具,第i件玩具經過壓縮後變成一維長度為ci.為了方便整理,p教授要求在乙個一...

HNOI2008 玩具裝箱toy

dp i min dp j sum i sum j c 2 dp k sum i sum k c 2 dp k si sum k 2 dp k si 2 2 si sum k sum k 2 dp k sum k 2 dp j sum j 2 2 si sum k sum j yk yj 2 si ...

HNOI2008 玩具裝箱TOY

這題可以說是斜率優化dp的模板題。首先,我們先推推它的dp式 f i min 這裡的c i 表示的是原來的c 1 i 的和 然後我們假設k我們可以將c i 再表示為c 1 i i,這樣就簡單很多了。改改dp式 f i min f j c i c j l 1 2 2我們用換元法,設x c j l 1,...