4234 - 基础算法-贪心算法:背包之金银岛
时间限制 : 1 秒
内存限制 : 128 MB
某天KID利用飞行器飞到了一个金银岛上,上面有许多珍贵的金属,KID虽然更喜欢各种宝石的艺术品,可是也不拒绝这样珍贵的金属,但是他只带着一个口袋,口袋至多只能装重量为w的物品。岛上金属有s个种类,每个金属重量不同,分别为n1、n2、...ns,同时每个种类的金属总的价值也不同,分别为v1、v2、...、vs,KID想一次带走价值尽可能多的金属,问他最多能带走价值多少的金属。注意到金属是可以被任意分割的,并且金属的价值和其重量成正比。
输入
第一行是测试数据的组数K,后面跟着K组输入,每组测试数据占3行,第一行是一个正整数W(1<=w<=10000),表示口袋承受上限。
第二行是一个正整数s(1<=s<=100),表示金属的种类。第三行有2s个正整数,分别为n1,v1,n2,v2,b3,v3....ns,vs,分别为第一种、第二种....第s种的总重量、总价值(1<=ni<=10000,1<=vi<=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