社区讨论

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 条回复,欢迎继续交流。

正在加载回复...