简单dp + 前缀和
你谷这乱标难度的风气真是……

#include <bits/stdc++.h>
using namespace std;

#define int long long
const int N = 5005;

int f[N][N],s[N],n,m,k;

signed main() {
    scanf("%lld%lld%lld",&n,&m,&k);
    for(int i=1;i<=n;i++) scanf("%lld",&s[i]), s[i]+=s[i-1];
    for(int i=1;i<=n;i++)
        for(int j=1;j<=k;j++) {
            if(i<m) f[i][j]=f[i-1][j];
            else f[i][j]=max(f[i-1][j],f[i-m][j-1]+s[i]-s[i-m]);
        }
    cout<<f[n][k];
}

相关文章:

  • 2021-10-18
  • 2021-09-29
  • 2022-12-23
  • 2022-12-23
  • 2021-12-04
  • 2022-12-23
  • 2021-12-23
  • 2021-11-13
猜你喜欢
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2021-09-26
  • 2022-12-23
  • 2022-12-23
  • 2021-06-21
相关资源
相似解决方案