保序回归求解上升问题

定义

在一个图 G G G中。点有给定点权 v i v_i vi与需求点权 y i y_i yi。若存在边 i → j i\to j ij,那么有 y i ≤ y j y_i \leq y_j yiyj。要求最小化 ∑ i W i ∣ y i − v i ∣ p \sum_i W_i|y_i - v_i|^p iWiyivip。通常的根据p的不同,问题称为 l p l_p lp

l 1 l_1 l1的求解

这个在oier中是十分常见的,譬如 bzoj1367。
下面讲一下这类问题的通解。
前提条件: w i w_i wi的离散导数为常函数。(这里可能有问题,但是常函数,分段但是每一段都是常函数这样的函数是可以的)
首先,由于 p = 1 p=1 p=1,那么 y y y的值一定是某个 v v v值。那么假设v从小到大排序后为 v 1 , v 2 . . . v x v_1,v_2...v_x v1,v2...vx,那么我们可以通过一个整体二分求出每一个点的值。
那么首先,我们要先回求特殊情况的解法:
x = 2 x=2 x=2
这个时候,相当于每个点变成了选择 0 0 0或者 1 1 1,如果某一个点选择了 1 1 1,那么他的后继也都要选择 1 1 1,那么选择 1 1 1的就是一个闭合子图,那么问题就变成了最小权闭合子图,转化一下变成最大权闭合子图,然后可以网络流做。
那么有了这个,我们用一个整体二分即可。
s o l v e ( s , l , r ) solve(s , l , r) solveslr表示点集s的最优解的取值范围为 v l , v l + 1 , . . . v r v_l,v_{l+1},...v_r vl,vl+1,...vr。如果 l = r l=r l=r,那么 s s s中的点就确定了。。否则设 m i d = l + r 2 mid = \frac{l+r}{2} mid=2l+r(下取整),那么只对 s s s中的点,并且假设 s s s中的点只能取 v m i d 与 v m i d + 1 v_{mid}与v_{mid+1} vmidvmid+1做一次原问题。然后对于这次最优解在 v m i d v_{mid} vmid处取到的点,他的取值范围就变成了 [ l , m i d ] [l,mid] [lmid],反之为 [ m i d + 1 , r ] [mid+1,r] [mid+1r]
当然,大部分情况下做 x = 2 x=2 x=2的问题的时候都有特殊做法。譬如之前说的Apio的题,可以直接将 n 2 n^2 n2暴力拿来跑,然后第二维大小只有 2 2 2,所以复杂度是对的。实际上这也就意味着大部分情况下你只要会暴力你就 A A A了这道题了。再也不用分析,写可并堆了!

WXH:下次遇到这种题就可以直接喷出题人傻*,出裸题了!

l 2 l_2 l2的求解

首先最优解可能不是 v v v中的某一个,然后我就不会了。

你可能感兴趣的:(总结,technology)