请求加强数据

P1725 琪露诺

_qingshu_ @ 2023-11-27 18:42:46

题目中给定 N 的范围最大在 2 \cdot 10^5 ,而 R-L 的最大值应该也在 2 \cdot 10^5

但是下面这一份时间复杂度最劣 N^2 的代码可以过这道题。

#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];
}

如果时间复杂的计算不对请大佬指出。


|