助!!
查看原帖
助!!
672940
wdd2929楼主2023/8/27 15:29

c,忘记dp怎么做了

#include<iostream>
using namespace std;
int dp[30][30005],w[30],v[30005];
int main(){
    int n,m;
    cin>>n>>m;
    for(int i=1;i<=m;i++){
        cin>>w[i]>>v[i];
        v[i]*=w[i];
    }
    for(int i=1;i<=m;i++){
        for(int j=n;j;j--){
            if(j>=w[i])dp[i][j]=max(dp[i][j],dp[i-1][j-w[i]]+v[i]);
            else dp[i][j]=dp[i-1][j];
        }
    }
    cout<<dp[m][n];
    system("pause");
    return 0;
}
2023/8/27 15:29
加载中...