1 条题解
-
5
思路
和课上第二个OJ类似,就不多做分析了~代码
#include<bits/stdc++.h> using namespace std; const int maxn=2e3+10; int n,a[maxn]; int sum[maxn],f[maxn][maxn]; int main() { cin>>n; for(int i=n;i>=1;i--) cin>>a[i]; for(int i=1;i<=n;i++) sum[i]=sum[i-1]+a[i]; for(int i=1;i<=n;i++) for(int j=1;j<=n;j++) { int k=3*j; f[i][j]=f[i][j-1]; if(k-2<=i) f[i][j]=max(f[i][j],sum[i]-f[i-k+2][k-2]); if(k-1<=i) f[i][j]=max(f[i][j],sum[i]-f[i-k+1][k-1]); if(k<=i) f[i][j]=max(f[i][j],sum[i]-f[i-k][k]); } cout<<f[n][1]; return 0; }
- 1
信息
- ID
- 551
- 时间
- 1000ms
- 内存
- 256MiB
- 难度
- 1
- 标签
- (无)
- 递交数
- 160
- 已通过
- 111
- 上传者