题解:显然如果这题只有一个人,那我只要每次贪心拿最小的就行了,那我将绝杀,可惜我不能。但是我们发现这题也只有两个人,而第一个人拿其中某种物品一旦确定则拿另一种物品的数量也确定,那么我们最需要判断另一个人就行了(这时我们九八这题转化为了一个人的情况,直接贪心就行了)。
说白了,就是枚举其中一个人的情况,然后队另一个人进行贪心。
AC代码:
#include <iostream>
#include <cstring>
#include <string>
#include <map>
#include <cmath>
#include <vector>
#include <cstdio>
#include <algorithm>
#define int long long
#define IOS ios::sync_with_stdio(false);cin.tie(0);
using namespace std;
const int maxn=1e6+5;
main() {
IOS;
int t;
cin>>t;
while(t--) {
int v1,v2,cnt1,cnt2,w1,w2;
cin>>v1>>v2>>cnt1>>cnt2>>w1>>w2;
int ans=0;;
if(w1>w2)swap(w1,w2),swap(cnt1,cnt2);
for(int i=0;i<=cnt2;i++){
if(i*w2>v1)break;
int j=min(cnt1,(v1-i*w2)/w1);
int x=min(cnt1-j,v2/w1);
int y=min(cnt2-i,(v2-x*w1)/w2);
ans=max(ans,i+j+x+y);
}
cout<<ans<<endl;
}
}