题意
有
n
n
n种燃料,每种有三个属性:
a
i
,
b
i
,
c
i
a_i,b_i,c_i
ai,bi,ci。
给定
A
,
B
A,B
A,B,要求确定任意非负实数
m
i
m_i
mi,满足
∑
a
i
m
i
≤
A
,
∑
b
i
m
i
≤
B
∑a_im_i≤A,∑b_im_i≤B
∑aimi≤A,∑bimi≤B,使得
∑
c
i
m
i
∑c_im_i
∑cimi最大,求这个最大值。
题解
乍一看是单纯性板题,然而复杂度过不去。
将不等式进行转化:
设
x
i
=
m
i
c
i
,
d
i
=
a
i
c
i
,
e
i
=
b
i
c
i
x_i=m_ic_i,d_i=\frac{a_i}{c_i},e_i=\frac{b_i}{c_i}
xi=mici,di=ciai,ei=cibi,
则问题转化为:
∑
d
i
x
i
≤
A
∑
e
i
x
i
≤
B
Max
(
∑
x
i
)
\sum d_ix_i\leq A\\\sum e_ix_i\leq B\\ \text{Max}(\sum x_i)
∑dixi≤A∑eixi≤BMax(∑xi)
a n s = Max ( min ( A d i , B e i ) ) ans=\text{Max}(\min(\frac{A}{d_i},\frac{B}{e_i})) ans=Max(min(diA,eiB))
类似于bzoj1027合金,将燃料看做二维平面上的点 ( d i , e i ) (d_i,e_i) (di,ei)求出平面上所有可以合成的燃料对应点的凸包,最优答案必然在凸包顶点或者 y = B A x y=\frac {B}{A}x y=ABx与凸包的交点上(可能会忘了这种情况?)。