说个笑话

P1725 琪露诺

LJN1117 @ 2023-10-05 21:48:13

```cpp #include<bits/stdc++.h> #define int long long #define maxn 2001000 #define inf 0x3f3f3f3f using namespace std; int n,l,r; int a[maxn],dp[maxn]; int ans=-inf; signed main(){ ios::sync_with_stdio(false); cin.tie(0);cout.tie(0); cin>>n>>l>>r; for(int i=0;i<=n;i++) cin>>a[i]; memset(dp,-inf,sizeof dp); dp[0]=0; for(int i=l;i<=n+r-1;i++){ for(int j=max(0ll,i-r);j<=i-l;j++) dp[i]=max(dp[i],dp[j]+a[i]); if(i>=n) ans=max(ans,dp[i]); } cout<<ans<<endl; return 0; } ```

by LuoFeng_Nanami @ 2023-10-05 21:48:46

Orz


by 细数繁星 @ 2023-10-05 21:52:12

@LJN405

#include<bits/stdc++.h>
#define int long long
#define maxn 2001000
#define inf 0x3f3f3f3f

using namespace std;

int n,l,r;
int a[maxn],dp[maxn];
int ans=-inf;

signed main(){
    ios::sync_with_stdio(false);
    cin.tie(0);cout.tie(0);
    cin>>n>>l>>r;
    assert(n>=1e5);
    for(int i=0;i<=n;i++) cin>>a[i];
    memset(dp,-inf,sizeof dp);
    dp[0]=0;
    for(int i=l;i<=n+r-1;i++){
        for(int j=max(0ll,i-r);j<=i-l;j++) dp[i]=max(dp[i],dp[j]+a[i]);
        if(i>=n) ans=max(ans,dp[i]);
    }
    cout<<ans<<endl;
    return 0;
}

该代码报错 RE + TLE。

说明是有大数据的。


by 细数繁星 @ 2023-10-05 21:53:37

@LJN405

(个人)盲猜是没构造 l,r


by LJN1117 @ 2023-10-05 22:00:08

@2044_space_elevator 并没有报错呀,你看我的提交记录,AC了


by 细数繁星 @ 2023-10-05 22:01:59

@LJN405 我给你代码里的 n 加了 assert,然后我重新交了一遍爆 RE 了。


|