MLE了最后一个点
查看原帖
MLE了最后一个点
531776
LYM20114楼主2022/8/19 09:33
#include <iostream>
#include <cstring>
using namespace std;
long long f[10000005],n,m;
int v[10005],w[10005];
int dp(int amount){
	if(f[amount] >= 0) return f[amount];
	int res = 0;
	for(int i = 1;i <= n;i++){
		if(amount - w[i] < 0) continue;
		res = max(res,dp(amount - w[i]) + v[i]);
	}
	return f[amount] = res;
}
int main(){
	memset(f,-1,sizeof f);
	cin >> m >> n;
	for(int i = 1;i <= n;i++)
		cin >> w[i] >> v[i];
	cout << dp(m);
	return 0;
}
2022/8/19 09:33
加载中...