60pts求调
查看原帖
60pts求调
776337
sugawara楼主2024/7/20 10:51
#include<iostream>
#include<math.h>
#include<string.h>
using namespace std;
const int N=300;
int v,n,a[N],dp[N][N];
int rec(int i,int j){
	if(dp[i][j]!=-1) return dp[i][j];
	if(i>n || j<a[i]) return j;
	return dp[i][j]=max(rec(i+1,j),rec(i+1,j-a[i]));
}
int main(){
	memset(dp,-1,sizeof(dp));
	scanf("%d%d",&v,&n);
	for(int i=1;i<=n;i++) scanf("%d",&a[i]);
	printf("%d",rec(1,v));
	return 0;
}
2024/7/20 10:51
加载中...