80分求调
查看原帖
80分求调
1106396
Cong256楼主2024/8/31 17:51

第三个点wa了

#include<bits/stdc++.h>
using namespace std;
int n,m,sum,dp[100005],a[100005],b[100005],ans=-0x3f3f3f3f;
int main(){
	cin>>n;
	cin>>m;
	for(int i=1;i<=m;i++){
		cin>>a[i];
	}
	for(int i=1;i<=n;i++){
		cin>>b[i];
	}
	for(int i=2;i<=n+n;i++){
		dp[i]=-0x3f3f3f3f;
	} 
	for(int i=1;i<=n+n;i++){
		for(int j=1;j<=m;j++){
			if(i>=a[j])
				dp[i]=max(dp[i],dp[i-a[j]]+b[i-a[j]]);
		}
	}
	for(int i=1;i<=n;i++){
		ans=max(ans,dp[i+n]);
	}
	cout<<ans;
    return 0;
}
2024/8/31 17:51
加载中...