題目描述
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教授要去看奧運,但是他捨不下他的玩具,於是他決定把所有的玩具運到北京。他使用自己的壓縮器進行壓縮,其可以將任意...