B. RPG Protagonist

B. RPG Protagonist

题意:

你有两个背包,大小分别为p和f

有两种物品,数量分别位cnts,cntw

他们的体积分别为s,w

求最大装下多少物品

思路:

枚举第一个背包装体积小的物品的数量即可

代码:

#include<bits/stdc++.h>
#define ll long long
#define maxn (int)1e3+5
using namespace std;

int t;
ll p,f,cnts,cntw,s,w;
int main(){
    cin>>t;
    while(t--){
        cin>>p>>f>>cnts>>cntw>>s>>w;
        if(s>w){
            swap(s,w);
            swap(cnts,cntw);
        }
        ll ans=0;
        for(ll i=0;i<=cnts;i++){
            ll c1=0,c2=0,c3=0,c4=0;
            c1=min(i,p/s);
            c2=min((p-c1*s)/w,cntw);
            c3=min((cnts-c1),f/s);
            c4=min((f-c3*s)/w,(cntw-c2));
            ans=max(ans,c1+c2+c3+c4);
        }
        cout<<ans<<endl;
    }
}
原文地址:https://www.cnblogs.com/xuanzo/p/14144367.html