斜率优化DP
文章平均质量分 68
linkfqy
A link to FQY.
展开
-
【斜率优化DP】BZOJ1096 [ZJOI2007]仓库建设
题面在这里典型的斜率优化DP……定义f[i]f[i]表示前i个工厂已经处理(在第i个工厂修建仓库)的最小费用 剩下的事情,就是去枚举离i最近的仓库是哪个 f[i]=Min{f[j]+c[i]+d[i]∗(g[i]−g[j])−(s[i]−s[j])}f[i]=Min\{f[j]+c[i]+d[i]*(g[i]-g[j])-(s[i]-s[j])\} 其中g[]是p[]的前缀和,s[]是d[]*原创 2017-06-08 12:53:55 · 955 阅读 · 2 评论 -
【斜率优化DP】BZOJ1010 [HNOI2008]玩具装箱toy
题面在这里一道典型的斜率优化DP……很明显,定义f[i]f[i]表示前i个玩具的费用 可以得到: f[i]=Min{f[j]+(i−j−1+s[i]−s[j]−L)2}f[i]=Min\{f[j]+(i-j-1+s[i]-s[j]-L)^2\} 其中s[]s[]是c[]c[]的前缀和,方便统计加和 如下变换: f[i]=Min{f[j]+((s[i]+i−L−1)+(−s[j]−j))2}原创 2017-06-07 22:31:29 · 938 阅读 · 0 评论 -
斜率优化DP 与数形结合思想
前言最近才入了DP优化的大坑…… 发现斜率优化DP还是很有用的 下面会结合一道例题,同时讲解斜率优化DP正文先看一下例题:HDU3507 题目大意:有一串数列,要把它分割成若干段 每一段的代价是 这一段所有数的和 的平方 再加上常数M 求最小的代价和。DP很好推啊,f[i]f[i]表示前i个数字的最小代价和 f[i]=Min{f[j]+(s[i]−s[j])2}+Mf[i]=Min\{f原创 2017-06-05 20:18:43 · 1556 阅读 · 2 评论 -
【斜率优化DP】BZOJ1597 [Usaco2008 Mar]土地购买
题面在这里一看就是斜率优化DP……首先如果存在ai≤aj且bi≤bja_i\le a_j且b_i\le b_j则可以不处理i去掉这些没用的土地,那么aia_i一定递增,bib_i一定递减设fif_i表示前ii块土地全部买了的最小代价很容易得到转移方程:fi=Min{fj+ai×bj+1} (0≤j<i)f_i=Min\{ f_j+a_i\times b_{j+1} \}\space\space原创 2017-08-06 18:31:29 · 808 阅读 · 1 评论 -
【斜率优化DP】BZOJ1911 [Apio2010]特别行动队
题面在这里又是一道最简单的斜率优化……如下推导: fi=Max{fj+a(Si−Sj)2+b(Si−Sj)+c}fi=Max{fj+aS2j−bSj−2aSiSj}+c+aS2i−bSj设k=2aSi,x=Sj,y=fj+aS2j−bSj 则:b=y−kxy=kx+bf_i=Max\{ f_j+a(S_i-S_j)^2+b(S_i-S_j)+c \} \\f_i=Max\{ f_j+aS_j^原创 2017-09-27 21:40:59 · 706 阅读 · 0 评论 -
【斜率优化DP】BZOJ4518 [Sdoi2016]征途
题面在这里把m2m^2乘进去,答案其实就是m∑a2i−S2nm\sum a_i^2-S_n^2其中aia_i是第i天走的路程那么就是一个最显然的平方和模型,直接斜率优化DP示例程序:#include#include#include#define cl(x,y) memset(x,y,sizeof(x))using namespace std;typedef long原创 2018-01-04 20:53:29 · 519 阅读 · 0 评论