部分背包问题
该比赛已结束,您无法在比赛模式下递交该题目。您可以点击“在题库中打开”以普通模式查看和递交本题。
Description

Input Format

Output Format
一个实数表示答案,输出两位小数4 50
10 60
20 100
30 120
15 45
240.00
Hint
样例中的最大价值为:第一堆,第二堆金币全部拿走,第三堆金币拿走20的重量,这样的总重量为10+20+20=50,总价值为60+100+80=240
struct
node{
int
w,m;
double
val;
}coin[M];
int
n,t,tot;
double
ans;
bool
cmp(node a,node b)
{
return
a.val>b.val;
}
int
main()
{
scanf
(
"%d%d"
,&n,&t);
for
(
int
i=1;i<=n;i++)
{
scanf
(
"%d%d"
,&coin[i].m,&coin[i].w);
coin[i].val=(
double
)coin[i].w/coin[i].m;
}
sort(coin+1,coin+n+1,cmp);