为什么加了一维就会错两个点?
查看原帖
为什么加了一维就会错两个点?
1000915
dfsgbear2楼主2023/8/31 20:18
#include<bits/stdc++.h>
using namespace std;
int dp[31][20001];
int v,n,wei[31];
int main(){
	cin>>v>>n;
	for(int i=1;i<=n;i++){
		cin>>wei[i];
	}
	for(int i=1;i<=n;i++){
		for(int j=v;j>=wei[i];j--){
			if(v>=wei[i]){
				dp[i][j]=max(dp[i-1][j-wei[i]]+wei[i],dp[i-1][j]);
			}
		}
	}
	cout<<v-dp[n][v];
}
2023/8/31 20:18
加载中...