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

简答题

1.兔子不吃窝边草
有谚语云:“兔子不吃窝边草”。现给定若干块排列成一条线的草皮,假设兔子从任何一块草皮开始吃,但吃完一块后,绝对不吃直接相邻的草皮,则兔子最多可以吃掉多少草?
时间限制:10000
内存限制:65536
输入
输入第一行给出两个正整数,即 N (≤ 105) 为草皮的块数、 i (1 ≤ i ≤ N) 为兔子开始吃的第一块草皮的编号。第二行给出 N 个正整数 (≤ 103),以空格分隔,依次表示每块草皮的含草量。
输出
首先在一行中输出这只兔子最多可以吃掉的草量。下一行按兔子吃草的顺序输出每块被吃掉的草皮的编号。同行数字以 1 个空格分隔,行首尾不得有多余空格。 注意:我们必须假设兔子只朝一个方向跳着吃草,否则如果它可以来回跳,就能吃掉所有的草了。如果朝左右两个方向得到的结果一样,则兔子总是喜欢向左边跳;并且如果有多块草皮都可以得到同样的结果,兔子总是选择跳到离自己最近的那块。
样例输入
样例1:
10 4
2 1 4 3 1 1 5 2 3 1
样例2:
10 8
2 1 4 3 1 1 5 2 3 1
样例输出
样例1:
11
4 7 9
样例2:
9
8 6 3 1

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

答案:

解析:

这道题目是一个典型的动态规划问题。动态规划是一种求解最优化问题的方法,其基本思想是将问题分解为若干个子问题,通过求解子问题的最优解,逐步构造出原问题的最优解。在这道题目中,我们可以将问题分解为求解以每块草皮为结尾的最长不连续草皮序列的长度,然后通过比较和选择得到最优解。

具体的实现过程中,我们需要使用动态规划的思想,通过状态转移方程来计算dp值,并在遍历过程中记录最大的dp值和对应的草皮编号。由于题目中限制了内存和时间的限制,我们需要使用高效的算法来求解。动态规划是一种非常有效的求解最优化问题的方法,能够在较短的时间内得到最优解。

创作类型:
原创

本文链接:1.兔子不吃窝边草有谚语云:“兔子不吃窝边草”。现给定若干块排列成一条线的草皮,假设兔子从任何一块草

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

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

分享考题
share