斜率优化小结

atoner atoner     2022-11-28     720

关键词:

斜率优化小结

博主是个智障,总是忘记斜率优化的过程。为了方便以后考前临时抱佛脚,写个博客。

斜率优化维护下面的问题:

(f_i=min_j<if_j+(a_i-b_j)^2)

其中(min)(max),和(+)(-)(a_i,b_j)均只取决于(i,j)

首先不看取(min)。我们钦定它的决策点是(j),有:

(f_i=f_j+a_i^2+b_j^2-2a_ib_j) 其中符号什么的视情况而定。

(实际上未必是最上式,可以整理成上式的也都可以做斜率优化,甚至未必系数为2)

移项得:(2a_ib_j+f_i-a_i^2=f_j+b_j^2)

我们把(b_j)设为(x)(f_j+b_j^2)设置为(y)。这样每个决策点(j)可以看成点((b_j,f_j+b_j^2))

转移我们看作拿一个斜率是(a_i)的直线,去切一群点,考虑最小化(f_i),所以要求截距最小。

又斜率都是正的,所以考虑拿这个切出来的点应该是下凸包。

维护凸包根据各种要求,有平衡树,cdq分治,普通单调队列等。

斜率优化复习小结

这篇基本上还是自己看的,写一些碎片和注意事项 斜率优化:①形如DP[i]=min/max{DP[j]+A[j]+B[j]*C[i]+D[i]+E}方程,将转移方程化为(DP[j]+A[j])=(-C[i])*(B[j])+(DP[i]-D[i]-E)  即方程斜率式:y=kx+b,其中k=-C[i]  要求C[i]单调!(斜率单调)  ... 查看详情

凸包小结(代码片段)

...何之凸包(convexHull)----Graham扫描法——天泽28话说本来在学斜率优化DP,结果因为某位坑爹博主的一句本来没有问题的话:是不是很像一个下凸包? 我们用当前的斜率k从下方去不断逼近下凸包,最终会先碰到哪一个点? 我... 查看详情

凸包小结

凸包(凸壳??)感觉自己数学菜得要死,尤其是对于直线斜率等这些东西……大概~点凸包:静态(那个什么水平序、极角序的算法(大爱水平序))、动态(离线CDQ,在线平衡树(建议splay,有时候set也可以))、完全动态(mmp)(一般找点的话... 查看详情

斜率优化规律

斜率单调暴力移指针斜率不单调二分找答案x坐标单调开单调队列x坐标不单调开平衡树|cdq分治——摘自MashiroSky ——ta讲解的斜率优化 查看详情

dp斜率优化

斜率优化入门题:PKU3709很多人貌似都是做这道题来K斜率优化的,所以看了资料以后还是开始入手吧。然而还是得跪求大神的程序啊ORZORZ…… 其实理解斜率优化就是会列斜率不等式,还要理解剔除过程。那么我们来看... 查看详情

斜率优化dp

斜率优化DP是一种DP的一种优化方式,目的在于将一类具有单调性的DP优化为线性。注:本文只适用于较为基础的斜率优化DP,以便为初学者提供一个思路。这一类可以利用单调性线性或(log)复杂度之内求解的DP问题统称为1D/1D类型... 查看详情

浅谈斜率优化

斜率优化如果对于方程形如这样的我们不能对其进行比较有效果的优化,因为它的转移,涉及到了关于i和关于j的一些数组,这时我们就需要用斜率优化了。通常我们令k<j<i,且用j来更新F[i]比用j优。则有并且我们都可以化... 查看详情

斜率优化

斜率优化说明(本文中所有的单调递增递减都不是绝对的,根据实际情况灵活使用)对于形如\(f[i]=max\)\(f[j]+a[i]+b[i]*c[j]\)的状态转移方程,若\(b[i]\)是单调递增的(可以是递减,但维护方式就不同了,下面不再说明),那么我们可以对... 查看详情

斜率优化dp

hihocoder1529不上升序列[斜率优化]Description给出一个序列(a[1...n]),求构造一个(b[1...n]),满足(b_i+1leb_i),使得(sumlimits_i=1^n|a_i-b_i|)最小.(nle5 imes10^5)Solution关于暴力与转移方程首先对于暴力转移,定义(dp_i,j)为转移到i点,权 查看详情

斜率优化动态规划学习笔记

发掘状态转移方程的性质发掘状态转移方程的性质本文作者:ztxcsl,使用署名-非商业性使用4.0国际进行许可 查看详情

小结常见错误总结

1.斜率优化dp中,若原数据太大,则不要将斜率交叉相乘(可能爆longlong),而应使用longdouble比较slope2.不带修改的前缀主席树:o=++gt;带修改的BIT套主席树:if(!o)o=++gt;3.树剖:应为while(top[x]!=top[y])if(dep[top[x]]<dep[top[y]])swap(x,y);  ... 查看详情

斜率优化dp

前置知识  比记号与拓展比记号: http://www.cnblogs.com/Sdchr/p/7347799.html [HDU3507]PrintArticle   以[HDU3507]来说明清楚斜率优化.   序列$s_1,s_2,...,s_n$满足$s_1les_2le...les_n$.  $f_0=0$.  $f_i=min_{0le 查看详情

斜率优化dp和四边形不等式优化dp整理

...一重循环跑i的所有子状态)这样的时间复杂度是O(N^2)而斜率优化或者四边形不等式优化后的DP可以将时间复杂度缩减到O(N)O(N^2)可以优化到O(N),O(N^3)可以优化到O(N^2),依次类推斜率优化DP和四边形不等式优化DP主要的原理就是利用斜... 查看详情

uva1451average-斜率优化

  ADNAsequenceconsistsoffourletters,A,C,G,andT.TheGC-ratioofaDNAsequenceisthenumberofCsandGsofthesequencedividedbythelengthofthesequence.GC-ratioisimportantingenefindingbecauseDNAsequenceswithrelative 查看详情

斜率优化(代码片段)

对于有i*j的项,考虑用斜率优化DP(任务安排)http://poj.org/problem?id=1180 单调递增1memset(f,8,sizeof(f));f[0]=0;2FOR(i,1,n)34while(l<r&&(f[q[l+1]]-f[q[l]])<=(sumc[q[l+1]]-sumc[q[l]])*(sumt[i]+s))++l;5f[i 查看详情

4518:[sdoi2016]征途|斜率优化

裸的斜率优化。。我考场上SB写暴力#include<algorithm>#include<iostream>#include<complex>#include<cstdlib>#include<cstring>#include<cstdio>#include<vector>#include<cmath> 查看详情

hdu3507单调队列斜率优化

斜率优化的模板题给出n个数以及M,你可以将这些数划分成几个区间,每个区间的值是里面数的和的平方+M,问所有区间值总和最小是多少。如果不考虑平方,那么我们显然可以使用队列维护单调性,优化DP的线性方法来做,但是... 查看详情

动态规划专题——斜率优化dp

前言斜率优化(DP)是难倒我很久的一个算法,我花了很长时间都难以理解。后来,经过无数次的研究加以对一些例题的理解,总算啃下了这根硬骨头。基本式子斜率优化(DP)的式子略有些复杂,大致可以表示成这样:[f_i=min_j=1^i-1(A(... 查看详情