问错了哪里
查看原帖
问错了哪里
1286671
earyyds楼主2024/10/22 21:31
#include<bits/stdc++.h>
using namespace std;
long long dp[1000][1000],w[100],v[100],n,m;
int main(void){
	memset(dp,0,sizeof(dp));
	scanf("%lld %lld",&n,&m);
	for(long long i = 1;i <= m;++i){
		scanf("%lld %lld",&w[i],&v[i]);
	}
	for(long long i = 1;i <= n;++i){
		for(long long j = 1;j <= m;++j){
			if(j >= w[i]) dp[i][j] = max(dp[i-1][j],dp[i-1][j-w[i]] + v[i]);
			else dp[i][j] = dp[i-1][j];
		}
	}
	printf("%lld",dp[n][m]);
	return 0;
} 
2024/10/22 21:31
加载中...