40分WA记忆化求调
查看原帖
40分WA记忆化求调
1241911
cmyymc楼主2024/12/15 15:14
#include<bits/stdc++.h>
using namespace std;
#define ll long long
ll n,m,a[10105],f[10105],b[10005];
ll find(ll x){
	if(x>=n) return f[x]=0;
	if(f[x]!=INT_MIN) return f[x];
	ll ret=INT_MIN;
	for(int i=0;i<m;i++){
		ret=max(a[x]+find(x+b[i]),ret);
	}
	return f[x]=ret;
}
int main(){
	cin>>n>>m;
	for(int i=0;i<m;i++){
		cin>>b[i];
	}
	for(int i=0;i<=n+m;i++) f[i]=INT_MIN;
	for(int i=0;i<n;i++) cin>>a[i];
	cout<<find(0)<<'\n';
	//for(int i=0;i<n;i++) cout<<f[i];
	return 0;
}
2024/12/15 15:14
加载中...