VINTAGE_vector 2022-08-20 14:21 采纳率: 50%
浏览 62
已结题

有一个不太清楚的题,望大家解答

为了验证 uuku 学习成果,bh1234666 给出一个长为 n 整数序列 a[i]。并让 uuku 给这个序列进行 M次操作。每次操作可以任意选择序列中一个数 a[i],令 a[i] 变成 a[i] * 2, a[i]+2,a[i]-2 ,a[i] / 2这四个结果中的一个。
bh1234666 希望 m 次操作后,整个序列的极差(最大值减最小值)最大。
显然 uuku 没有认真学习,所以他希望你来帮他回答这个问题。

请帮我解答一下这个编程题,关注回报

  • 写回答

2条回答 默认 最新

  • GGBGGBGGB000 2022-08-20 23:37
    关注

    这题是道简单的贪心。

    我的思路是这样 : 首先对这个序列按升序排序, 在通过枚举一些序列进行计算, 我发现当 a[n] <= 4 时, 应先将其加 2, 再进行 M - 1 次的乘 2 操作; 当 a[n] > 4 时, 只要对 a[n] 进行 M 次的乘 2操作, 最后用 a[n] 减去 a[1]即可。如有不懂, 可以私信问我 .

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录
查看更多回答(1条)

报告相同问题?

问题事件

  • 系统已结题 9月24日
  • 已采纳回答 9月16日
  • 创建了问题 8月20日