1 条题解
-
0
题意
考虑第一只兔子:我们可以在第二只兔子之前或之后选择它。如果它在第二只兔子之后被选择,那么从第二只兔子到最后一只兔子的解与第一只兔子无关;否则,我们会得到相同的结果,但在第二只兔子之前显然会是喂食的兔子。因此,我们有两种动态规划状态。
思路
定义两种动态规划状态:
- —— 将后缀 作为一个独立任务时的答案。
- —— 如果该后缀的前一只兔子已经被喂食,则后缀 的答案。
算法步骤
- 初始化:
- 从 到 递推:
- 最终答案为
复杂度分析
- 时间复杂度:,其中 是兔子的数量。
- 空间复杂度: 或 (若只保留上一状态)。
代码说明
- 使用两个数组或两个变量分别存储 和 的值。
- 从后向前遍历,根据递推公式更新状态。
- 最终输出 即为所求答案。
- 1
信息
- ID
- 6723
- 时间
- 1000ms
- 内存
- 256MiB
- 难度
- 10
- 标签
- 递交数
- 1
- 已通过
- 1
- 上传者