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

2022-07-07 07:30:19 字數 1502 閱讀 1979

【題意簡述】現有n

個物品,第

i個物品的長度為ci

。可以製造若干個容器,容器的數量和長度不限制,但是只能把連續若干個物品放入容器中。把物品區間[i,j]放入同乙個容器中,長度為

,每乙個容器的製造代價為,l

為給定常數。求最小代價之和。

資料範圍

】對於100%的資料,

【原題鏈結】

如果只要部分分,那麼容易設計

較慢的的演算法。狀態轉移方程如下:

這是o(n

3)的。還有很多優化空間。做字首和,可以進一步優化到o(n

2)。實測

若j>k,且對於x說,從j比從k轉移來的優,則有不等式:

將b所表示的值代入分母,得:

就得到斜率的式子了。以這樣的規則在單調佇列中彈隊首、隊尾即可。

之後,兩條黃色的、被叉掉的線段被包括在凸殼裡面了,可以排除,被紅色線代替了。

之後就是**了。

#include#include

#define int long long

using

namespace

std;

int dp[50010

];int n,l,c[50010],s[50010],a[50010

];int front=1,rear=1,q[50010

];inline

double slope(int j,int

k)inline

int f(int x,int

y)signed main()

for(int i=1;i<=n;i++)

cout

return0;

}

(完)

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...

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

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

P3195 HNOI2008 玩具裝箱TOY

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