1400B - RPG Protagonist (暴力)

本文介绍了一种使用贪心算法解决特定货物装载问题的方法。通过分析刀剑等货物的质量特性,采取先装载轻质货物再填充重质货物的策略,解决了旅行者及其仆人的背包容量利用问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

题目

思路:一开始觉得像个dp,但一看范围太大了。然后发现每种刀剑的质量固定的特点,那么很容易想到贪心肯定先把质量小的搞完,而数量范围最多2e5。所以暴力遍历主人拿质量小的货物(刀或间)从0–最大可拿的数量个,然后剩下的容量去拿另一种。到了仆人尽可能先拿质量小的货物,剩余容量去拿质量大的。注意边界即可。

Code:

#include<iostream>
#include<cmath>
#define pii pair<int,int>
using namespace std;

int main()
{
	int t;cin >> t;
	while (t--)
	{
		int z, p;cin >> z >> p;
		pii a, b, r;
		cin >> a.first >> b.first;
		cin >> a.second >> b.second;
		if (b.second < a.second)
		{
			r = b;b = a;a = r;
		}
		int sum = 0;
		for (int i = 0;i <= a.first;i++)
		{
			if (i * a.second > z)break;
			int s = i;
			s += min(b.first, (z - a.second * i) / b.second);
			int nb=b.first- min(b.first, (z - a.second * i) / b.second);
			s += min(a.first - i, p / a.second);
			s += min(nb, (p - min(a.first - i, p / a.second) * a.second) / b.second);
			sum = max(sum, s);
		}
		cout << sum << endl;
	}
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

_Rikka_

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值