90分,求助,#2过不去
查看原帖
90分,求助,#2过不去
1290314
hdh1103楼主2024/3/21 00:16
#include <iostream>
#include <string>
#include <algorithm>
#include <math.h>
#include <iomanip>

#define ll long long
using namespace std;
int a[105];
int l[105];
int c[105];
int num=0;
ll res = 0;
void func(int h,int t,ll sum,int n)
{
    if(n==num+1)
    {
        res = max(res,sum);
        return ;
    }

    //放
    if(h>a[n]&&t>l[n])
    {
        func(h-a[n],t-l[n],sum+c[n],n+1);
        //不放
        func(h,t,sum,n+1);
    }
    else
    {
        //放不下
        func(h,t,sum,n+1);
    }
}
int main()
{
    int h,t;
    cin>>h>>t;

    cin>>num;

    for(int i=1;i<=num;i++){
        cin>>a[i]>>l[i]>>c[i];
    }

    func(h,t,0,1);
    cout<<res;
    return 0;
}

2024/3/21 00:16
加载中...