博客
关于我
Making the grade 和Sonya and Problem Wihtout a Legend
阅读量:379 次
发布时间:2019-03-05

本文共 506 字,大约阅读时间需要 1 分钟。

为了将给定的序列转换为非递减序列并最小化调整成本,我们可以使用离散化和动态规划的方法。以下是详细的步骤说明:

  • 离散化处理

    • 将原序列中的每个元素减去其索引i,得到新的序列b。
    • 对b进行排序并去重,得到离散化后的数组b_sorted。
  • 动态规划表的初始化

    • 创建一个二维数组d,其中d[i][j]表示处理前i个元素后,最大值不超过b_sorted[j]时的最小调整成本。
    • 初始化d[0][0] = 0,其他d[0][j]为一个很大的值(如INF)。
  • 动态规划表的填充

    • 对于每个i(从1到n),遍历离散化后的每个j(从1到m)。
    • 计算将第i个元素调整为b_sorted[j]的成本:cost = d[i-1][j] + |a[i] - b_sorted[j]|
    • 如果这个成本小于d[i][j],则更新d[i][j]为cost。
    • 另外,比较将第i个元素调整为b_sorted[j-1]的情况,取较小的成本作为d[i][j]。
  • 结果提取

    • 最终答案为d[n][m],即处理完所有元素后,最大值不超过最大的离散化值时的最小调整成本。
  • 通过这种方法,我们能够高效地找到满足非递减条件的最优调整方案,同时控制调整成本的上升。

    转载地址:http://wtwzz.baihongyu.com/

    你可能感兴趣的文章
    上周热点回顾(10.20-10.26)
    查看>>
    上周热点回顾(2.16-2.22)
    查看>>
    上周热点回顾(3.2-3.8)
    查看>>
    [网站公告]3月10日23:00-4:00阿里云SLB升级,会有4-8次连接闪断
    查看>>
    .NET跨平台之旅:借助ASP.NET 5 Beta5的新特性显示CLR与操作系统信息
    查看>>
    上周热点回顾(7.27-8.2)
    查看>>
    上周热点回顾(9.28-10.4)
    查看>>
    上周热点回顾(3.28-4.3)
    查看>>
    上周热点回顾(5.2-5.8)
    查看>>
    上周热点回顾(5.9-5.15)
    查看>>
    上周热点回顾(8.8-8.14)
    查看>>
    .NET跨平台之旅:将示例站点升级至 .NET Core 1.1 Preview 1
    查看>>
    上周热点回顾(1.16-1.22)
    查看>>
    上周热点回顾(1.23-1.29)
    查看>>
    上周热点回顾(3.20-3.26)
    查看>>
    上周热点回顾(4.24-4.30)
    查看>>
    [故障公告]博客站点1台负载均衡遭遇流量攻击,造成联通与移动用户无法正常访问
    查看>>
    上周热点回顾(5.1-5.7)
    查看>>
    上周热点回顾(5.29-6.4)
    查看>>
    云计算之路-阿里云上:14:20-14:55博客后台2台服务器都CPU 100%引发的故障
    查看>>