一般形式: $max\{min(ax+by+c,dF(x)+eG(y)+f)\},其中F(x)和G(y)是单调函数.$ 或 $min\{max(ax+by+c,dF(x)+eG(y)+f)\},其中F(x)和G(y)是单调函数.$ (以下用第一种形式讨论) (1)dF(x)随ax的增大而增大,eG(y)随by的增大而增大. ax和by均取最大值. (2)dF(x)随ax的增大而增大,eG(y)随by的增大而减小. ax一定取最大值,ax和dF(x)变成常数. 此时变成: $H(y)=max\{m…
min/max优化 在表中,一般都是经过优化的. 如下地区表 id area pid 1 中国 0 2 北京 1 ... 3115 3113 我们查min(id), id是主键,查Min(id)非常快. 但是,pid上没有索引, 现在要求查询3113地区的min(id); select min(id) from it_area where pid=69; 试想 id是有顺序的,(默认索引是升续排列), 因此,如果我们沿着id的索引方向走, 那么  第1个 pid=69的索引结点,他的id就正好是…
对于单调性优化其实更多的是观察dp的状态转移式子的单调性 进而用优先队列 单调队列 二分查找什么的找到最优决策 使时间更优. 对于这道题就是单调性优化的很好的例子 首先打一个暴力再说. f[i][j]表示前i个木匠刷前j个木板所得到的最大价值 f[i][j]=max(f[i][j],f[i-1][j]); f[i][j]=max(f[i][j],f[i][j-1]) f[i][j]=max(f[i][j],f[i-1][k]+(j-k)*r(j));(k<t(j)<=j)&&(…
写了一道单调性优化发现 跟斜率优化很像,而且这道题目感觉质量非常的好. 其实斜率优化是基于单调性优化的,但是面对这道题 我竟然连单调性优化都不太会,尽管这个模型非常不好理解. 对于每道题 我都会打一个暴力 程序一般可得40分左右考试的时候我想时间够的话可以对拍(尽管现在不太会了). dp 考虑 f[i]表示第i个数字的最小的p值 f[i]=max(f[i],a[j]-a[i]+sprt(abs(i-j))(向上))其中 j∈[1,n]; 将其优化的话第一要先去掉绝对值然后形成两个dp式子 f[i…
跟着书上的思路学习dp的单调性优化觉得还是很容易想的. 数据范围: dp,数据范围是百万,这应该是O(n)的算法了. 首先不难想到设f[i]表示到第i个百米所能达到的最大能量,那么f[n]即为所求. f[i]=max(f[i],f[j]+s[i]-s[j]-cost[i]);这个地方s数组是能量的前缀和,然后发现需要多加一层循环来枚举j,这个时候就是O(n^2)的算法了. 这样的话,就只有40分了,毕竟看分做题.这分给的还是很良心的. 考虑优化首先我们发现状态转移方程可以这样变f[i]=max{…
传送门 一道神奇的dp题. 这题的决策单调性优化跟普通的不同. 首先发现这道题只跟r−lr-lr−l有关. 然后定义状态f[i][j]f[i][j]f[i][j]表示猜范围为[L,L+i−1][L,L+i-1][L,L+i−1]的数有jjj次报警机会所需的最小代价. 那么有: f[i][j]=minf[i][j]=minf[i][j]=min{max(f[k][j],f[i−k][j−1]+1)max(f[k][j],f[i-k][j-1]+1)max(f[k][j],f[i−k][j−1]+1…
单调性优化DP Tags:动态规划 作业部落链接 一.概述 裸的DP过不了,怎么办? 通常会想到单调性优化 单调队列优化 斜率优化 决策单调性 二.题目 [x] 洛谷 P2120 [ZJOI2007]仓库建设 [x] 洛谷 P2900 [USACO08MAR]土地征用 [x] 洛谷 P3195 [HNOI2008]玩具装箱 [x] 洛谷 P3628 [APIO2010]特别行动队 [ ] 洛谷 P4360 [CEOI2004]锯木厂选址(留作复习) [x] 洛谷 P4072 [SDOI2016]…
第一种方法是决策单调性优化DP. 决策单调性是指,设i>j,若在某个位置x(x>i)上,决策i比决策j优,那么在x以后的位置上i都一定比j优. 根号函数是一个典型的具有决策单调性的函数,由于根号函数斜率递减,所以i决策的贡献的增长速度必定比j快. 于是使用基础的决策单调性优化即可. 注意两个问题,一是DP函数要存实数而不能存整数,因为先取整会丢失在后面的判断中需要的信息.二是记录决策作用区间的时候左端点要实时更新,即下面的p[st].l++,否则在二分时会出现错误. #include<c…
地址 n个数划分若干段,给定$L$,$p$,每段代价为$|sum_i-sum_j-1-L|^p$,求总代价最小. 正常的dp决策单调性优化题目.不知道为什么luogu给了个黑题难度.$f[i]$表示最小代价.然后有个正常的dp方程. $f[i]=min \{ f[j]+|sum_i-sum_j-1-L|^p \} $ 然后观察发现带高次项,不好斜率优化或单调队列,考虑有没有决策单调性.本来是可以打表证明的,然后拍一下.然而我杠一波瞎证了一下单调性. $证明:$ $已知f[j]+|sum_i-su…
给定一序列,求对于每一个$a_i$的最小非负整数$p_i$,使得$\forall j \neq i $有$ p_i>=a_j-a_i+ \sqrt{|i-j|}$. 绝对值很烦 ,先分左右情况单独做.现在假设j都在i左边,则$ p_{i} = max \{ a_{j}-a_{i}+ \sqrt{i-j} \} = max \{ a_{j}+ \sqrt{i-j} \} - a_i$.带根号,不易斜率优化,考虑证决策单调性. 假设最优决策为j,j之前的任意决策称之为$j'$,只与$j$有关的项令之…