WA on #1
查看原帖
WA on #1
932345
OIER__Tym2011楼主2024/7/7 08:40
#include<bits/stdc++.h>
using namespace std;
const int N=2e6+9;
long long a[N],b[N],dp[N];
int main(){
	long long n,m;
	cin>>n>>m;
	for(int i=0;i<m;i++){
		cin>>a[i]; 
	}
	for(int i=0;i<n;i++){
		cin>>b[i];
	}
	for(int i=0;i<2*n;i++){
		dp[i]=-1e9;
	}
	dp[0]=0;
	for(int i=0;i<2*n;i++){
		for(int j=0;j<m;j++){
			if(i>=a[j]) dp[i]=max(dp[i],dp[i-a[j]]+b[i-a[j]]);
		}
	}
	long long ans=-2e9;
	for(int i=n;i<=2*n;i++){
		ans=max(ans,dp[i]);
	}
	cout<<ans;
	return 0;
}

请教一下各位大佬,为什么第一个样例过不去?

2024/7/7 08:40
加载中...