習題 玩具裝箱(斜率優化)

2021-09-25 17:28:14 字數 885 閱讀 6351

題目:

傳送門

思路:首先考慮暴力,那麼設dp[i]為以前i號元素的最小值

s[i]為前i號元素的字首和

那麼轉移方程即為dp[i]=min

顯然樸素的時間複雜度為o(n^2)

那麼我們化簡一下式子

設有兩個點a,b向i進行轉移,且a比b優

那麼dp[a]+(i-a-1+s[i]-s[a]-l)^2推導過程此處省略

設x[i]=s[i]+1,y[i]=(x[i]+l+1)^2

2*y[i]>=(dp[a]+x[a]-dp[b]-x[b])/(y[a]-y[b])

以此為基礎,這道題的**就很容易碼出來了

#includeusing namespace std;

long long n,l;

long long dp[50005];

long long s[50005];

long long head;

long long tail;

long long x[50005];

long long y[50005];

long long q[50005];

double check_=1;

long long pf(long long x)

double get_k(long long a,long long b)

int main()

y[0]=pf(l+1);

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

dp[i]=dp[q[head]]+pf(x[i]-x[q[head]]-l-1);

while(headq[++tail]=i;

}cout

}

斜率優化DP 玩具裝箱

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

玩具裝箱TOY 斜率優化DP

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

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

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