金银岛上有 s种金属,每种金属重量不同,分别为 n_1, n_2, ..., n_s,同时每种金属的价值也不同,分别为 v_1, v_2, ..., v_s。一次带走的金属重量总和不能超过 w,问最多能带走价值多少的金属? 注意:金属是可以被任意分割的,金属的价值和重量成正比。
第 1 行是测试数据的组数 k,后面跟着 k 组输入。 每组测试数据占 3 行,第 1 行是一个正整数 w(1 < w ≤ 10000),表示口袋承重上限。 第 2 行是一个正整数 s(1 < s < 100),表示金属种类。 第 3 行有 2s 个正整数,分别为 n_1, v_1, n_2, v_2, ..., n_s, v_s,分别为第一种,第二种,.... 第 s 种金属的总重量和总价值(1 ≤ n_i ≤ 10000, 1 ≤ v_i ≤ 10000)。
k行,每行输出对应一个输入。输出应精确到小数点后 2 位。
2 50 4 10 100 50 30 7 34 87 100 10000 5 1 43 43 323 35 45 43 54 87 43
171.93 508.00
使用贪心算法,优先选择单位价值最高的金属。