求助
查看原帖
求助
1029229
zhoujiangrui楼主2024/10/27 17:09
#include<bits/stdc++.h>
using namespace std;
long long w[1005];
long long v[1005];
long long vis[1005];
long long n,m;
long long det[1005];
long long dfs(long long k){
	if(det[k]) return det[k];
	long long ret=0;
	for(int i=1;i<=m;i++){
		if(vis[i]==0&&k-w[i]>=0){
			vis[i]=1;
			ret=max(ret,dfs(k-w[i])+v[i]);
			vis[i]=0;
		}
	}
	return det[k]=ret;
}
int main(){
	cin>>n>>m;
	for(int i=1;i<=m;i++){
		cin>>w[i]>>v[i];
	}
	cout<<dfs(n);
	return 0;
}

WA10分

2024/10/27 17:09
加载中...