_qingshu_ @ 2023-11-27 18:42:46
题目中给定
但是下面这一份时间复杂度最劣
#include<bits/stdc++.h>
using namespace std;
int n,l,r;
int a[200100];
long long dp[200100];
int main(){
cin>>n>>l>>r;
for(int i=0;i<=n;i++){
cin>>a[i];
}
memset(dp,-0x3f,sizeof dp);
dp[0]=0;
for(int i=0;i<=n;i++){
for(int j=l;j<=r;j++){
int now=i+j;
if(now>n+1){
now=n+1;
}
dp[now]=max(dp[now],dp[i]+a[i]);
}
}
cout<<dp[n+1];
}
如果时间复杂的计算不对请大佬指出。