社区讨论
80分,求大佬调
P2240【深基12.例1】部分背包问题参与者 3已保存回复 4
讨论操作
快速查看讨论及其快照的属性,并进行相关操作。
- 当前回复
- 4 条
- 当前快照
- 1 份
- 快照标识符
- @m1nu3p8e
- 此快照首次捕获于
- 2024/09/30 01:07 去年
- 此快照最后确认于
- 2025/11/04 18:29 4 个月前
C
#include<stdio.h>
#include<stdlib.h>
int n, t;
double sum = 0;
struct gold
{
int m;
int v;
}p[105];
int cmp(struct gold *a,struct gold *b)
{
return a->v * b->m < b->v * a->m;
}
int main()
{
scanf("%d%d", &n, &t);
for (int i = 1; i <= n; i++)
{
scanf("%d%d", &p[i].m, &p[i].v);
}
qsort(p + 1, n, sizeof(struct gold), cmp);
int j = 1;
while (t > p[j].m)
{
t -= p[j].m;
j++;
}
for (int i = 1; i < j; i++)
{
sum += p[i].v;
}
sum += p[j].v * t * 1.0 / (p[j].m*1.0);
printf("%.2lf", sum);
return 0;
}
回复
共 4 条回复,欢迎继续交流。
正在加载回复...