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