1400B - RPG Protagonist (暴力)

题目

思路:一开始觉得像个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;
	}
}

猜你喜欢

转载自blog.csdn.net/asbbv/article/details/113514441
RPG