atcoder#ABC275G. [ABC275G] Infinite Knapsack

[ABC275G] Infinite Knapsack

题目描述

N N 種類の品物がそれぞれ無限個あります。 i i 種類目の品物は重さが Ai A_i 、体積が Bi B_i 、価値が Ci C_i です。

レベル X X の高橋君は、重さの合計が X X 以下かつ体積の合計が X X 以下になるように品物を持つことができます。ここで、高橋君は条件を満たすならば同じ種類の品物を何個でも持つことが可能であり、また選ばない種類の品物があっても構いません。

レベル X X の高橋君が持てる品物の価値の合計の最大値を f(X) f(X) とするとき、極限 limX  f(X)X \displaystyle\lim_{X\to\ \infty}\ \frac{f(X)}{X} が存在することが証明できます。この値を求めてください。

输入格式

入力は以下の形式で標準入力から与えられる。

N N A1 A_1 B1 B_1 C1 C_1 A2 A_2 B2 B_2 C2 C_2 \vdots AN A_N BN B_N CN C_N

输出格式

答えを出力せよ。なお、想定解答との絶対誤差または相対誤差が 106 10^{-6} 以下であれば正解として扱われる。

题目大意

小 T 在玩游戏,目前他的等级是 xx

游戏中有 nn 个物品,每个物品的有三个属性 (a,b,v)(a,b,v),每个物品有无限个。

根据开发者设定,等级为 xx 的人买的物品的 aa 的和与 bb 的和都必须小于等于 xx

f(x)f(x) 为等级为 xx 的人能买到的最大价值。求 limx+f(x)x\lim_{x \to +\infty} \frac{f(x)}{x} 的值。能够证明,极限存在。

2
100000000 200000000 100000000
200000000 100000000 100000000
0.6666666666666667
1
500000000 300000000 123456789
0.2469135780000000

提示

制約

  • 1 N 2× 105 1\leq\ N\leq\ 2\times\ 10^5
  • 108 Ai,Bi,Ci  109 10^8\leq\ A_i,B_i,C_i\ \leq\ 10^9
  • 入力は全て整数

Sample Explanation 1

X=300000000 X=300000000 のとき、高橋君は重さの合計が 300000000 300000000 以下かつ体積の合計が 300000000 300000000 以下になるように品物を持つことができます。 持ち方の一例として、高橋君は 1 1 番目の品物と 2 2 番目の品物を 1 1 個ずつ持つことができます。このとき、品物の価値の合計は 100000000+100000000=200000000 100000000+100000000=200000000 であり、これが達成可能な価値の最大値なので、f(300000000)300000000=23 \dfrac{f(300000000)}{300000000}=\dfrac{2}{3} です。 また、この入力では極限 $ \displaystyle\lim_{X\to\ \infty}\ \dfrac{f(X)}{X} $ も 23 \dfrac{2}{3} に一致することが証明できます。よって答えは 0.6666666... 0.6666666... です。