洛谷3195玩具裝箱(斜率優化)

2021-07-24 11:22:27 字數 863 閱讀 5350

題目描述

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 4342

14輸出樣例#1:

#include #include #include #include #include #define maxn 100005

#define ll long long

using namespace std;

ll s[maxn],len,a[maxn],f[maxn];

int n,q[maxn];

ll get()

double k(int p,int t)

int main()

printf("%lld\n",f[n]);

return 0;

}

Luogu P3195玩具裝箱(斜率優化DP)

這題還是比較炫的 題目鏈結 我們設f i 是已經裝了前i個玩具,且第i個玩具是某箱子裡裝的最後乙個東西 廢話 那我們很輕鬆可以想到乙個轉移方程 for int i 1 i n i for int j 0 jj f i min f i f j squa sum i sum j i j 1 l 其中su...

luogu P3195 玩具裝箱 斜率優化題解

題意簡述 現有n 個物品,第 i個物品的長度為ci 可以製造若干個容器,容器的數量和長度不限制,但是只能把連續若干個物品放入容器中。把物品區間 i,j 放入同乙個容器中,長度為 每乙個容器的製造代價為,l 為給定常數。求最小代價之和。資料範圍 對於100 的資料,原題鏈結 如果只要部分分,那麼容易設...

斜率優化DP 玩具裝箱

hnoi2008 玩具裝箱toy time limit 1000ms memory limit 165536k total submit 5 accepted 5 description p教授要去看奧運,但是他捨不下他的玩具,於是他決定把所有的玩具運到北京。他使用自己的壓縮器進行壓縮,其可以將任意...