关于斜率式的推导
查看原帖
关于斜率式的推导
220799
入户功夫ChaosNet楼主2021/9/16 09:19

个人见解,有错请指出,轻喷

xj=dpjkjajkj+bjx_j=dp_j* \frac{k_j}{a_jk_j+b_j}, yj=dpj1ajkj+bjy_j=dp_j* \frac{1}{a_jk_j+b_j},则有

dpi=max(aixj+biyj)dp_i=max(a_ix_j+b_iy_j)

如果像一般的斜率优化一样令 j>kj>k 且 由jj转移过来更优,则有

aixj+biyj>aixk+biyka_ix_j+b_iy_j>a_ix_k+b_iy_k

移项,得 bi(yjyk)>ai(xjxk)b_i(y_j-y_k)>-a_i(x_j-x_k)

这个时候很容易把bib_i移过去得到 (yjyk)>aibi(xjxk)(y_j-y_k)>- \frac {a_i}{b_i}(x_j-x_k),因为bib_i是个正数

但是倘若想将(xjxk)(x_j-x_k)移项过来该怎么办呢?似乎无法直接确定它是正数或是负数。因此所维护的线性表里要按照xjx_j升序排列 ,而不是直接在队列尾部插入元素使得队列中下标单调

是这样吧?

2021/9/16 09:19
加载中...