https://atcoder.jp/contests/abc275/tasks
G - Infinite Knapsack
n种物品, 每种无限多个
第i种, 重ai,体积bi,价值ci
f(X) = 总重量<=X,总体积<=X的最大价值
可证明 lim_{x->infty}f(X)/X 的极限存在, 求极限
范围
n 2e5
ai,bi,ci [1e8,1e9]
2s
1024mb
我的思路
感觉就一个很数学的题
考虑3元组, (a,b,c) 若 a >= b, 等价于a个(a/a,b/a,c/a)
若 a < b, 等价于a个(a/b,b/b,c/b)
于是分成两种
$(1,p\le1,c_0),p=b_0/a_0$
$(q\le1,1,c_1),q=a_0/b_0$
而实际上未来增长只会是 这两种按一个比例的和
$(t_0,pt_0,c_0t_0) + (qt_1,t_1,c_1t_1)$
$t_0 + qt_1 = pt_0+t_1 $
$t_0 = t_1 (1-q)/(1-p)$
$c_{0,1} = (c_0t_0 + c_1t_1)/(t_0 + qt_1)$
$= (c_0(1-q)/(1-p) + c_1)/((1-q)/(1-p)+ q)$
$= (c_0/(1-p)+c_1/(1-q))/(1/(1-p)+q/(1-q))$
$ans=\max(c_0,c_1,(c_0(1-q)+ (1-p)c_1)/((1-q)+ (1-p)q))$
问题是两两计算的话 为n^2
稍微改一下
$1,p < 1,c_0$
$1,q > 1,c_1$
$pt_0+qt_0=t_0+t_1$其中$t_0,t_1 > 0$ 即$t_0 = t_1 \frac{q-1}{1-p}$
$c_{0,1}=\frac{c_0t_0+c_1t_1}{t_0+t_1}$
$= \frac{c_0\frac{q-1}{1-p}+c_1}{\frac{q-1}{1-p}+1}$
$= \frac{\frac{c_0}{1-p}-\frac{c_1}{1-q}}{\frac{1}{1-p}-\frac{1}{1-q}}$
也就是 $(\frac{1}{1-\frac{b_i}{a_i}},\frac{\frac{c_i}{a_i}}{1-\frac{b_i}{a_i}})$ 这些点之间的最大斜率
n个点之间 找最大斜率
但注意到的是 是由第4向限和第1向限的点, 并不是两两之间, (因为两两之间的话 相当于$t <0)
直接考虑 分别两坨点的凸包
双指针???? 不会了