首页 > 试题广场 >

宵暗的妖怪

[编程题]宵暗的妖怪
  • 热度指数:946 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 256M,其他语言512M
  • 算法知识视频讲解
露米娅作为宵暗的妖怪,非常喜欢吞噬黑暗。
这天,她来到了一条路上,准备吞噬这条路上的黑暗。
这条道路一共被分为部分,每个部分上的黑暗数量为
露米娅每次可以任取 连续的 未被吞噬过的 三部分,将其中的黑暗全部吞噬,并获得中间部分的饱食度。
露米娅想知道,自己能获得的饱食度最大值是多少?

输入描述:
第一行一个正整数,代表道路被分的份数。 
第二行有个正整数,代表每一部分黑暗数量。
数据范围:


输出描述:
一个正整数,代表最终饱食度的最大值。
示例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的饱食度,并不是最大的。
def func(n,li:list):
    dp = [0] * n
    dp[2] = li[1]
    for i in range(3,n):
        dp[i] = max(dp[i-1],(dp[i-3]+li[i-1]))
    return max(dp)
print(func(int(input()),list(map(int,input().split()))))
发表于 2026-02-11 20:00:19 回复(0)

问题信息

难度:
1条回答 31浏览

热门推荐

通过挑战的用户

查看代码
宵暗的妖怪