二维写的为什么不能过?QwQ
查看原帖
二维写的为什么不能过?QwQ
1252442
lucy2012楼主2024/4/25 21:47
#include<bits/stdc++.h>
using namespace std;
int n,m,dp[250][250],w[250],v[250];
int main(){
    cin>>n>>m;
    for(int i=1;i<=m;i++){
    	cin>>v[i]>>w[i];
    	w[i]*=v[i];
	}
    for(int i=1;i<=m;i++){
    	dp[i][0]=0;
    	for(int j=1;j<=n;j++){
    		dp[0][j]=0;
    		if(v[i]>j)
    			dp[i][j]=dp[i-1][j];
			else
			    dp[i][j]=max(dp[i-1][j],dp[i-1][j-v[i]]+w[i]);
		}
	}
	cout<<dp[m][n];
	return 0;
}
2024/4/25 21:47
加载中...