Why?
查看原帖
Why?
1001542
K_func楼主2024/10/9 20:09
#include <bits/stdc++.h>
using namespace std;
int v,n,arr[5002],dp[5002][50002];
int main(){
	cin>>v>>n;
	for(int i=1;i<=n;i++){
		cin>>arr[i];
	}
	for(int j=1;j<=v;j++){
		for(int i=1;i<=n;i++){
			if(arr[i]>j){
				dp[i][j] = dp[i-1][j];
			}else{
				dp[i][j] = max(arr[i]+dp[i-1][j-arr[i]],dp[i-1][j]);
			}
			if(dp[i][j]==v)    cout<<dp[i][j]<<endl;return 0;
		}
	}
	cout<<dp[n][v];
	return 0;
}

二维DP为何0pts

2024/10/9 20:09
加载中...