斜率优化
YJSchaf
这个作者很懒,什么都没留下…
展开
-
BZOJ1010 [HNOI2008]玩具装箱toy
BZOJ1010 [HNOI2008]玩具装箱toyDescription划分一个数列,区间[l,r]的值x=r−l+∑k=lrCkx=r-l+\sum\limits_{k=l}^{r}C_k 求∑(xi−L)2\sum (x_i-L)^2最小值。题解可以很容易想出状态转移方程 ,记sum[i]为前缀和, f[i]=max(f[j]+(i−j+1+sum[i]−sum[j]−l)2)f[i]=原创 2017-05-28 07:49:12 · 429 阅读 · 0 评论 -
BZOJ3437 小P的牧场 斜率优化
BZOJ3437 小P的牧场 斜率优化Description要求将一n(n<=1000000)个点的序列分割,每个分割点上有一个代价a[i],每个点被其右边的点控制,代价为其权值b[i]乘以这个点到其右边第一个分割点中间的点的个数,,求出怎么分割代价最小。题解我们记sum[i]为后缀和,记cnt[j]=∑i=nj(n+1−i)∗b[i]cnt[j]=\sum\limits_{i=n}^{j}(n+1原创 2017-05-28 08:14:43 · 413 阅读 · 0 评论 -
BZOJ1911 [Apio2010]特别行动队 斜率优化
BZOJ1911 [Apio2010]特别行动队 斜率优化Description给定一个序列与一个二次函数f(x),将序列连续分段使得所以区间和的二次函数和最大。求最大值。题解我们可以很容易想出状态转移方程,s表示前缀和。 f[i]=max(f[i],f[j]−F(s[i]−s[j]));f[i]=max(f[i],f[j]-F(s[i]-s[j])); 可是这样的复杂度有O(n2)O(n^2)原创 2017-05-20 17:14:13 · 445 阅读 · 0 评论 -
BZOJ3675 [Apio2014]序列分割 斜率优化
BZOJ3675 [Apio2014]序列分割 斜率优化Description将一个长度为n的非负整数序列分割成k+1个非空的子序列。为了得到k+1个子序列,小H需要重复k次以下的步骤: 1.首先选择一个长度超过1的序列(一开始小H只有一个长度为n的序列——也就是一开始得到的整个序列); 2.选择一个位置,并通过这个位置将这个序列分割成连续的两个非空的新序列。 每次进行上述步骤之后,将会得到原创 2017-05-28 08:29:38 · 630 阅读 · 0 评论