0
已解决
黄子澄
中级天翼
中级天翼
#include<iostream>
#include<string>
#include<cstring>
#include<cstdio>
#include<algorithm>
#include<cmath>
#include<cstdlib>
#include<queue>
#include<iomanip>
using namespace std;
long long n,a[1005],f[1005];
int main(){
cin>>n;
for(int i=1;i<=n;i++){
cin>>a[i];
}
for(int i=1;i<=n;i++){
for(int j=min(i,2);j<=i;j++){
f[i]=max(f[i],f[i-j]+a[i]);
}
}
cout<<f[n];
return 0;
}
80
黄子澄在2020-08-19 13:17:21追加了内容
@王光裕 @包涵宇 @董子墨
0
已采纳
周俊豪
高级光能
高级光能
你的双重循环可以用一重循环来解决
将f[1]赋值a[1]
f[1]=a[1];
for(int i=2;i<=n;i++){
f[i]=max(f[i-2]+a[i],f[i-1]);
}
当前状态可以由f[i-1]和f[i-2]+当前积分值的最大值来推出
0
0
0
0
0
0
0