动态规划
2026-08-20 10:59:04
发布于:广东
1阅读
0回复
0点赞
#include<bits/stdc++.h>
using namespace std;
using ll = long long;
const ll N = 1e3+10;
ll n,a[N],dp[N];//dp[i]代表当前人数为i时的最大值
int main()
{
cin>>n;
for(ll i = 1;i<=n;i++)
cin>>a[i];
dp[0] = 0,dp[1] = a[1];
for(int i = 2;i<=n;i++) //i代表当前人数
for(int j = 1;j<=n;j++)//j代表上一步跳了多少达到的i
if(i-j>=0)//下标不能为负
dp[i] = max(dp[i],dp[i-j]+a[j]);
cout<<dp[n];
return 0;
}
这里空空如也


有帮助,赞一个