代码:
#include<bits/stdc++.h>
using namespace std;
int b[10005],a[105],dp[10005],n,m,vmax,ans;
int main(){
cin>>n>>m;
for(int i=0;i<m;i++) cin>>a[i];
for(int i=0;i<n;i++) cin>>b[i];
dp[0]=b[0];
for(int i=0;i<m;i++){
vmax=max(a[i],vmax);
dp[a[i]]=b[a[i]]+b[0];
}
for(int i=vmax+1;i<n;i++){
int nvmax=0;
for(int j=0;j<m;j++)
nvmax=max(nvmax,dp[i-a[j]]);
dp[i]=nvmax+b[i];
}
int k=n-1;
while(vmax--){
ans=max(ans,dp[k]);
k--;
}
cout<<ans;
return 0;
}
求大佬(qwq)