庐阳区区赛第六题分享一下~
《跳跃》
问题描述
猴子的正上方,每1米处,都有一个桃子,一共有N个桃子,每个桃子都有其能量值,摘下这个桃子吃下就获得了这个能力值。猴子每跳1米会消耗1个点能量,在能量值允许的情况下,它可以跳到任何一个可以到达的高度,并且将这个高度及以下高度的桃子摘下吃掉。确保猴子初始的能量一定可以摘下所有的桃子。求该猴子摘下吃掉所有的桃子后,保留最多的能量值。
输入格式
第一行两个整数N和M,表示桃子的数量和猴子的初始能量
第二行,N个非负整数,依次描述从下向上描述各桃子的能量值。
输出格式
一个整数,意义如题所述。
输入样例
3 2
2 2 2
输出样例
4
数据范围
$1$<=$N$<=$2000000$
如果做出来了,可以把代码分享一下(晒在下方评论区)~
(小小提示一下:用动态规划+双指针~)
样例有问题!!!
第一次,猴子跳到第2层,吃掉2个桃子,花费2点能量,剩余4点
第二次,猴子从第2层跳到第3层,吃掉1个桃子,花费1点能量,剩余5点
猴子跳完一次后要从底层跳起啊,它没有魔法