acgo题库
  • 首页
  • 题库
  • 学习
  • 天梯
  • 备赛

    竞赛

    • CSP-J/S
    • 蓝桥杯

    考级

    • GESP
    • CPA
    • 电子学会考级
  • 竞赛
  • 讨论
  • 团队
  • 商城
登录
注册
题目详情提交记录(0)
  • 官方题解

    题目大意 给定一个长度为 nnn 的数组 aia_iai ,表示在第 iii 个位置放置星灯的收益(可以为负)。要求选择若干位置,使得不能选择相邻位置,并且总收益最大。同时需要输出一种最优方案。 题解思路 这是经典的线性 DP。设 dp[i] 表示只考虑前 i 个位置能得到的最大收益,则第 i 个位置要么不选,要么选: * 不选 i:收益 dp[i-1] * 选 i:则 i-1 不能选,收益 dp[i-2] + a_i 所以递推为 dp[i]=max⁡(dp[i−1],dp[i−2]+ai).dp[i]=\max(dp[i-1], dp[i-2]+a_i). dp[i]=max(dp[i−1],dp[i−2]+ai ). 边界 dp[0]=0,dp[1]=max(0,a_1)。为了输出方案,用一个数组记录每个 i 是通过哪种转移得到的,最后从 i=n 反向回溯即可。复杂度 O(n)。 参考代码

    userId_undefined
    NoonMaple
    7月全勤卷王出道萌新时空双修者题解仙人快乐小狗传道者
    7阅读
    0回复
    0点赞
暂无数据

提交答案之后,这里将显示提交结果~

首页