贪心:1225:金银岛(信息学)

本题链接:
1225:金银岛
本题是典型的背包问题,和本蒟蒻之前写过的背包问题一样。
贪心:P2240 【深基12.例1】部分背包问题(洛谷)
本题重点同样在于,先按照均价对每堆财宝进行排序,假如为降序,第一堆就是均价最高的,我们选择将其拿走,然后是第二个…(当然在代码中要加入对承重的判断)

#include<bits/stdc++.h>
using namespace std;
struct Node
{
	double w;//重量
	double v;//价值
	double p;//均价
}a[1001];
double T,b[1001];//T为承重
int N,z;
bool cmp(Node a,Node b)
{
	return a.p > b.p;
}
double acc(double T,int  N)//计算函数
{
	double sum=0;
	for (int i = 0; i <N; i++)
	{
		cin >> a[i].w >> a[i].v;
		a[i].p = a[i].v / a[i].w;
	}
	sort(a ,a+ N,cmp);
	for (int i = 0; i < N; i++)
	{
		if (T - a[i].w > -0.0001)//因为数据类型为double
		{
			T -= a[i].w;
			sum += a[i].v;
		}
		else 
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值