#1 #2 wa

#include<iostream>
using namespace std;
int k,m,n,a[1145],b[1145],c[114514],dp[1145];
int main(){
    cin>>m>>n;
    for(int i=1;i<=n;i++){
        cin>>a[i]>>b[i]>>c[i];
        k=max(k,c[i]);
    }
    for(int g=1;g<=k;g++){
        for(int i=1;i<=n;i++){
            if(c[i]!=g) continue;
            for(int j=m;j>=a[i];j--){
                dp[j]=max(dp[j],dp[j-a[i]]+b[i]);
            }
        }
    }
    cout<<dp[m];
    return 0;
}

1 comments

  • @ 2025-5-21 13:58:54

    @想想时间复杂度更低的代码吧 否则最后两点过不了的

    • @ 2025-5-21 16:23:01

      愚蠢至极我换了个循环顺序就a了管时间复杂度什么事🤣

  • 1

Information

ID
731
Time
1000ms
Memory
256MiB
Difficulty
2
Tags
# Submissions
25
Accepted
10
Uploaded By