刷题刷出新高度,偷偷领先!偷偷领先!偷偷领先! 关注我们,悄悄成为最优秀的自己!

简答题

1.吃奶酪
Jerry准备偷吃Tom的奶酪。所有的奶酪排成了一条直线,每块奶酪都有不同的美味程度。然而,如果有相邻两块奶酪都被Jerry偷吃,Tom就会发现这一点并迅速抓住Jerry。Jerry当然希望在不被Tom发现的条件下吃到的奶酪美味度总和最大。当然,他也可以选择一块奶酪都不吃。请你帮助他规划一下偷吃的方案,告诉他最多能偷吃到多少的美味度吧。
时间限制:1000
内存限制:65536
输入
第一行一个整数T (T<=100),表示测试数据组数。 接下来,每组测试数据包含两行。其中,第一行一个整数n (1 <= n <= 100,000) ,表示奶酪的数量;第二行n个整数,表示这一排直线上奶酪的美味程度,请注意,美味度保证能够被int类型存储,且可能是负数。
输出
对于每组测试数据,输出一个整数,表示Jerry可以吃到的最大美味度总和。请注意,美味度总和可能超过int存储范围
样例输入
2
4
1 2 3 1
5
2 7 9 3 1
样例输出
4
12

使用微信搜索喵呜刷题,轻松应对考试!

答案:

解析:

【喵呜刷题小喵解析】:这个问题可以使用动态规划来解决。我们定义dp数组,其中dp[i]表示在偷吃奶酪到第i块时,能够获得的最大美味度总和。我们使用动态规划的思想,通过遍历每一块奶酪,根据当前奶酪的美味度和前两块奶酪的美味度总和,计算出偷吃奶酪到第i块时能够获得的最大美味度总和。最终,dp[n]就是所求的最大美味度总和。在遍历每一块奶酪时,我们有两种选择:偷吃或者不吃。如果我们选择偷吃第i块奶酪,那么dp[i]的值就是dp[i-2] + cheese[i];如果我们选择不吃第i块奶酪,那么dp[i]的值就是dp[i-1]。我们比较这两种选择的美味度总和,取较大的值作为dp[i]的值。这样,我们就可以通过动态规划的思想,计算出偷吃奶酪能够获得的最大美味度总和。
创作类型:
原创

本文链接:1.吃奶酪 Jerry准备偷吃Tom的奶酪。所有的奶酪排成了一条直线,每块奶酪都有不同的美味程

版权声明:本站点所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明文章出处。

让学习像火箭一样快速,微信扫码,获取考试解析、体验刷题服务,开启你的学习加速器!

分享考题
share