原来决策单调性指的是这个东西... 一些DP可以写成$f_i=\max\limits_{j\lt i}g(i,j)$,设$p_i(p_i<j)$表示使得$g(i,j)$最大的$j$,如果$p_1\leq\cdots\leq p_n$,那么我们称这个DP满足决策单调性,称$p_i$为$i$的最优决策点 决策单调性可以用整体二分来做,设当前要处理$f_{l\cdots r}$且最优决策点的范围是$[h,t]$,那么我们先求出$f_{mid}$,这个直接暴力从$\left[h,\min(mid,t)\…
[BZOJ2216]Lightning Conductor(动态规划) 题面 BZOJ,然而是权限题 洛谷 题解 \(\sqrt {|i-j|}\)似乎没什么意义,只需要从前往后做一次再从后往前做一次就好了. 只考虑从前往后,把给定的式子移项,可以得到 \(p\ge a[j]-a[i]+\sqrt{i-j}\) 而\(a[i]\)是当前的枚举的位置\(i\)的值,这个是不会变化的. 所以要求的就是\(max(a[j]-\sqrt{i-j})\) 画出\(\sqrt x\)的函数图像,是一个增长率…
[BZOJ2216][Poi2011]Lightning Conductor Description 已知一个长度为n的序列a1,a2,...,an.对于每个1<=i<=n,找到最小的非负整数p满足 对于任意的j, aj < = ai + p - sqrt(abs(i-j)) Input 第一行n,(1<=n<=500000)下面每行一个整数,其中第i行是ai.(0<=ai<=1000000000) Output n行,第i行表示对于i,得到的p Sample I…
[bzoj 2216] [Poi2011] Lightning Conductor Description 已知一个长度为n的序列a1,a2,-,an. 对于每个1<=i<=n,找到最小的非负整数p满足 对于任意的j, aj < = ai + p – sqrt(abs(i-j)) Input 第一行n,(1<=n<=500000) 下面每行一个整数,其中第i行是ai.(0<=ai<=1000000000) Output n行,第i行表示对于i,得到的p Sampl…
P3515 [POI2011]Lightning Conductor 式子可转化为:$p>=a_j-a_i+sqrt(i-j) (j<i)$ $j>i$的情况,把上式翻转即可得到 下面给一张图证明这是满足决策单调性的 把$a_j+sqrt(i-j)$表示在坐标系上 显然$sqrt(i-j)$的增长速度趋缓 曲线$a$被曲线$b$超过后是无法翻身的 对两个方向进行决策单调性分治,取$max$即可 #include<iostream> #include<cstdio>…
Description 已知一个长度为n的序列a1,a2,…,an.对于每个1<=i<=n,找到最小的非负整数p满足 对于任意的j, aj < = ai + p – sqrt(abs(i-j)) Input 第一行n,(1<=n<=500000)下面每行一个整数,其中第i行是ai.(0<=ai<=1000000000) Output n行,第i行表示对于i,得到的p Sample Input 6532424 Sample Output 235354 题解 http…
题目链接 BZOJ2216 题解 学过高中数学都应知道,我们要求\(p\)的极值,参变分离为 \[h_j + sqrt{|i - j|} - h_i \le p\] 实际上就是求\(h_j + sqrt{|i - j|} - h_i\)的最大值 就可以设\(f[i]\)表示对\(i\)最大的该式的值 绝对值通常要去掉,一般可以通过方向性,我们只需每次转移时令\(i > j\),正反转移两次即可 现在式子变为 \[f[i] = max\{h_j + \sqrt{i - j}\} - h_i\] 发…
$f[i]=\max(a[j]+\lceil\sqrt{|i-j|}\rceil)$, 拆开绝对值,考虑j<i,则决策具有单调性,j>i同理, 所以可以用分治$O(n\log n)$解决. #include<cstdio> #include<cmath> #define N 500010 int n,i,l,r,mid,a[N],b[N],f[N],g[N]; inline void read(int&a){char c;while(!(((c=getchar(…
洛谷题目传送门 疯狂%%%几个月前就秒了此题的Tyher巨佬 借着这题总结一下决策单调性优化DP吧.蒟蒻觉得用数形结合的思想能够轻松地理解它. 首先,题目要我们求所有的\(p_i\),那么把式子变一下 \[p_i\ge a_j-a_i+\sqrt{|i-j|}\] \[p_i=\max\limits_{j=1}^n\{a_j+\sqrt{|i-j|}\}-a_i\] 绝对值看着很不爽,我们把它拆开 \[p_i=\max(\max_{j=1}^i\{a_j+\sqrt{i-j}\},\max_{j…
题目传送门 需要root权限的传送门 题目大意 给定一个长度为$n$的数组,要求对每个$1 \leqslant i \leqslant n$找到最小整数的$p$,对于任意$j$满足使得$a_{i} + p - \sqrt{\left | i - j \right |} \geqslant a_{j}$. 一来想到函数$y = \left \lceil \sqrt{x} \right \rceil$,至多有根号个取值,然后发现$O(n\sqrt{n})$会稳T. 对于函数$y = \sqrt{x}…