题意:将n个数分成若干组,每组数字的个数不少于t个,要把每组的数字减小到这组最小值,求所有数字减少的最小值。先将这n个数从小到大排个序,可以想到一组里面的数一定是排序后相邻的。设d(i)表示前i个数分完组以后减少的最小值,考虑j~i为一组,则有状态转移方程还是一样的处理方法,设k 2 #inclu....
分类:
其他好文 时间:
2015-08-01 10:01:01
阅读次数:
140
斜率优化。。。 1 #include 2 #include 3 #include 4 #include 5 #include 6 #include 7 #include 8 #define clr(a,x) memset(a,x,sizeof(a)) 9 #define rep(i,l,r) for...
分类:
其他好文 时间:
2015-07-19 23:14:55
阅读次数:
114
题意:
有n天和m的初始金钱,用来购买AB两种纪念券;
n天里每天都有AB的价格,每天可以进行这样的操作;
1.卖出手中x%的纪念券(AB分别都卖出x%);
2.用x的金钱买入纪念券,买入AB券的比例在第i天为Rate i;
求n天过去之后所获得的最大收益;
金钱和券数均为实数;
n
题解:
首先,虽然题中的买入和卖出都是任意数量的,但是同样的纪念券,分几天卖出得到的收 ...
分类:
其他好文 时间:
2015-07-11 10:39:44
阅读次数:
172
做完此题之后 自己应该算是真正理解了斜率优化DP根据状态转移方程f[i]=max(f[j]+ax^2+bx+c),x=sum[i]-sum[j]可以变形为 f[i]=max((a*sum[j]^2-b*sum[j])-(2a*sum[j]*sum[i]))+(a*sum[i]^2+b*sum[i]+...
bzoj1047 理想的正方形题目大意:求a*b的矩阵中一个n*n的子矩阵,使得子矩阵的最大值和最小值的差最小。思路:一开始认为能用二维线段树a掉,但lcomyn大神写了一下,结果T了,于是就寻找新的写法。借鉴了斜率优化的思路,发现单调队列可以优越的做到O(ab)的求出整个矩阵中每个点左面延伸n位的...
分类:
其他好文 时间:
2015-07-04 19:47:22
阅读次数:
136
斜率优化问题一般都是决策单调问题。对于这题可以证明单调决策。
令sum[i]=sigma(c [k] ) 1
首先我们可以写出转移方程 dp[i] = min( dp[j] + (f[i]-f[j]-c)^2 ) 。令决策j1
dp[j2]+(f[i]-f[j2]-c)^2
可以得带 ((dp[j2]+f[j2]^2)-(dp[j1]+f[j1]^2) )/(f[j2]-f[j1...
分类:
其他好文 时间:
2015-06-29 14:53:34
阅读次数:
131
BZOJ 3675 APIO2014 序列分割 斜率优化DP...
题意:
给出一个长度为n的序列和m次操作;
每次操作选择一个地方将序列分开,得分为左一半的和乘右一半;
求最大的总得分;
题解:
首先显然分割的顺序与得分无关,只要在那几个地方割就可以是最优解;
(为什么?难道要我@PoPoQQQ来证明一下?)
然后可以设状态为f[i][j],表示在前j个数里选择i个点分割的最大得分;
那么转移式显然为f[i][j]=max...
分类:
其他好文 时间:
2015-06-06 09:16:18
阅读次数:
145
题目大意:给定dd种食物,食物分两个类型:离散食物和连续食物
离散食物只能按份供应,每种食物有一个质量w
连续食物可以食用任意质量
每种食物有一个初始美味值tt和一个美味值衰减系数△t\triangle t
对于一种离散食物,如果你吃了NN份,那么获得的美味值为∑Ni=1(t?(i?1)△t)\sum_{i=1}^N(t-(i-1)\triangle t)
对于一种连续食物,如果你吃的质...
分类:
其他好文 时间:
2015-05-27 13:58:51
阅读次数:
370
对于一些具有决策单调性的dp题目,我们可以应用斜率优化将复杂度从O(n^2)降到O(n)。bzoj1010 HNOI2008 玩具装箱toy题目大意:对于一些一维长度的物品,我们可以将连续的i~j个物品放在一起,费用是(j-i+sigma lk(i0,带入之前的式子,将L+1,将含i的移到右边,含j...
分类:
其他好文 时间:
2015-05-26 21:01:05
阅读次数:
152