热心网友* 2021-12-13 12:19 采纳率: 80%
浏览 69
已结题

范围内最高最矮树高度差问题

问题:N棵树排成一排。考虑到每棵树的高度H,小明被要求回答M个问题。每个问题包含两个数字L和R,询问间隔[L,R]中最高树和最短树之间的高度差。帮助小明解决这个问题

输入的第一行包含两个整数N和M,表示树的数量和问题的数量
以下N行中的每一行都包含一个整数Hi,表示每棵树的高度。以下M行中的每一行都包含两个整数Li和Ri,表示每个问题的间隔。
输出:从第1行到第m行,每行包含一个整数,表示从第Lth树到第Rth树的最高树和最短树之间的高度差。

img

  • 写回答

2条回答 默认 最新

  • qq_34024716 2021-12-13 13:56
    关注

    tree[i]代表第i棵树的高度
    假设dp[i][j][0] 代表[i,j]区间最大值,dp[i][j][1]代表[i,j]区间最小值
    可知dp[i][j][0] = dp[i][j][1] = tree[i] 当i=j时
    dp[i][j][0]= Max(tree[j],dp[i][j-1][0]) j>i
    dp[i][j][1]= Min(tree[j],dp[i][j-1][1]) j>i
    最后求解[x,y]区间,为dp[x][y][0] - dp[x][y][1]

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

报告相同问题?

问题事件

  • 系统已结题 12月24日
  • 已采纳回答 12月16日
  • 创建了问题 12月13日