#include <bits/stdc++.h>
using namespace std;
int w[1009],c[1009],f[1009][100009];
int n,m;
int main(){
    cin>>m>>n;
    for(int i=1;i<=n;i++){
        cin>>c[i];
        cin>>w[i];
    }
    for(int i=1;i<=n;i++){
        for(int j=1;j<=m;j++){
            if(j<=w[i]) f[i][j]=f[i-1][j];
            else f[i][j]=max(f[i-1][j],f[i-1][j-w[i]]+c[i]);
        }
    }
    cout<<f[n][m];
    return 0;
}

某些瑕疵:

感觉这道题没有数据范围???

1 条评论

  • @ 2024-08-26 16:37:55

    后面可能需要遍历一遍f[n][i]来找出最大答案?

    • @ 2024-10-08 19:21:42

      遍历一遍了,但是还不行。

      此题数据有误?

  • 1

信息

ID
1002
难度
3
分类
动态规划 | 背包 点击显示
标签
递交数
53
已通过
3
通过率
6%
上传者