牛客 宵暗的妖怪

描述
露米娅作为宵暗的妖怪,非常喜欢吞噬黑暗。
这天,她来到了一条路上,准备吞噬这条路上的黑暗。
这条道路一共被分为
n

n 部分,每个部分上的黑暗数量为
a
i

a
i


露米娅每次可以任取 连续的 未被吞噬过的 三部分,将其中的黑暗全部吞噬,并获得中间部分的饱食度。
露米娅想知道,自己能获得的饱食度最大值是多少?
输入描述:
第一行一个正整数
n

n ,代表道路被分的份数。
第二行有
n

n 个正整数
a
i

a
i

,代表每一部分黑暗数量。
数据范围:
3

n

100000
,
1

a
i

1
0
9

3≤n≤100000,1≤a
i

≤10
9

输出描述:
一个正整数,代表最终饱食度的最大值。
示例1
输入:
7
2 4 1 4 2 1 8
复制
输出:
6
复制
说明:
选择[2,4,1]和[4,2,1]这两段即可。饱食度为4+2=6。
示例2
输入:
7
2 4 1 7 2 1 8
复制
输出:
7
复制
说明:
选择[1,7,2]这一段即可。饱食度为7。
值得注意的是,若取两段进行吞噬,反而最多只能获得6的饱食度,并不是最大的。

include

include

include

using namespace std;
using ll=long long;
int main() {
ios::sync_with_stdio(false);
cin.tie(nullptr),cout.tie(nullptr);
ll n;
cin>>n;
vectora(n);
for(ll i=0;i<n;i++)cin>>a[i];
vectordp(n+1,0);

if(n>=3)dp[3]=a[1];

for(ll i=4;i<=n;i++)
{

dp[i]=max(dp[i-1],dp[i-3]+a[i-2]);
}

cout<<dp[n];
return 0;
}

posted @ 2026-05-07 21:55  lagranSun  阅读(10)  评论(0)    收藏  举报