YCW13983841648 @ 2024-12-04 19:13:29
#include<bits/stdc++.h>
using namespace std;
int n;
const int N=2e5+10;
int l,r;
int a[N];
int dp[N];
signed main(){
ios::sync_with_stdio(false);
cin.tie(0);
cout.tie(0);
cin>>n>>l>>r;
for(int i=1;i<=n+1;i++){
cin>>a[i-1];
dp[i]=INT_MIN+1e3+10;
}
for(int i=0;i<=n;i++){
for(int j=i+l;j<=i+r;j++){
dp[min(j,n+1)]=max(dp[min(j,n+1)],dp[i]+a[j]);
}
}
cout<<dp[n+1];
return 0;
}
by KarmaticEnding @ 2024-12-04 19:23:41
@YCW13983841648
有没有一种可能:在您的双重循环
所以,您访问
by YCW13983841648 @ 2024-12-04 19:25:49
@KarmaticEnding请您看看我在二重循环dq数组下标上的min
by KarmaticEnding @ 2024-12-04 19:26:31
@YCW13983841648
这样就过了
#include<bits/stdc++.h>
using namespace std;
int n;
const int N=5e5+10;
int l,r;
int a[N];
int dp[N];
signed main(){
ios::sync_with_stdio(false);
cin.tie(0);
cout.tie(0);
cin>>n>>l>>r;
for(int i=1;i<=n+1;i++){
cin>>a[i-1];
dp[i]=INT_MIN+1e3+10;
}
for(int i=0;i<=n;i++){
for(int j=i+l;j<=i+r;j++){
dp[min(j,n+1)]=max(dp[min(j,n+1)],dp[i]+a[j]);
}
}
cout<<dp[n+1];
return 0;
}
虽然我是真的很不理解为什么
by YCW13983841648 @ 2024-12-04 19:26:36
@KarmaticEnding哦,我知道了,是a数组
by KarmaticEnding @ 2024-12-04 19:27:14
@YCW13983841648
我指的不是
by YCW13983841648 @ 2024-12-04 19:29:12
@KarmaticEnding已过已关