我们在学习斜率优化的时候经常会看到这样一个式子(或者稍微变一下符号):
w
>
y
1
−
y
2
x
1
−
x
2
>
y
2
−
y
3
x
2
−
x
3
>
.
.
.
>
y
i
−
y
i
+
1
x
i
−
x
i
+
1
w>\frac{y1-y2}{x1-x2}>\frac{y2-y3}{x2-x3}>...>\frac{y_i-y_{i+1}}{x_i-x_{i+1}}
w>x1−x2y1−y2>x2−x3y2−y3>...>xi−xi+1yi−yi+1
对于这个东西要维护一个单调队列。
对于上面所说到的直线的理解方法自然可以将它理解为凸壳。
同样对于这题来说,我们也假设每一个向量为(ai,bi),考虑询问(x,y)对于两个向量i,j,如果ai<aj,并且i优于j,那么可以推出这个式子:
x
y
<
b
j
−
b
i
a
i
−
a
j
\frac{x}{y}<\frac{b_j-bi}{a_i-a_j}
yx<ai−ajbj−bi
根据套路,就有:
x
y
<
b
j
−
b
i
a
i
−
a
j
<
b
k
−
b
j
a
j
−
a
k
.
.
.
.
\frac{x}{y}<\frac{b_j-b_i}{a_i-a_j}<\frac{b_k-b_j}{a_j-a_k}....
yx<ai−ajbj−bi<aj−akbk−bj....
其中i最优。
但是为什么有
b
j
−
b
i
a
i
−
a
j
<
b
k
−
b
j
a
j
−
a
k
\frac{b_j-b_i}{a_i-a_j}<\frac{b_k-b_j}{a_j-a_k}
ai−ajbj−bi<aj−akbk−bj呢?
假定有:
x
y
<
b
j
−
b
i
a
i
−
a
j
,
x
y
<
b
k
−
b
j
a
j
−
a
k
,
b
j
−
b
i
a
i
−
a
j
>
b
k
−
b
j
a
j
−
a
k
\frac{x}{y}<\frac{b_j-bi}{a_i-a_j},\frac{x}{y}<\frac{b_k-b_j}{a_j-a_k},\frac{b_j-bi}{a_i-a_j}>\frac{b_k-b_j}{a_j-a_k}
yx<ai−ajbj−bi,yx<aj−akbk−bj,ai−ajbj−bi>aj−akbk−bj
那么当j优于k的时候,因为
b
j
−
b
i
a
i
−
a
j
>
b
k
−
b
j
a
j
−
a
k
>
x
y
\frac{b_j-bi}{a_i-a_j}>\frac{b_k-b_j}{a_j-a_k}>\frac{x}{y}
ai−ajbj−bi>aj−akbk−bj>yx所以i也优于j,所以j就没有用了。