区间最值差

一 问题描述

每天挤奶时,约翰的 N 头奶牛都以相同的顺序排队,他挑选一系列连续的奶牛来做游戏。为了让所有的奶牛都开心,他们的高度差异不应该太大。约翰列出的 Q 组奶牛和他们的高度,他希望确定每个小组中最高和最矮的奶牛之间的高度差异。

二 输入和输出 

1 输入

第 1 行包含两个整数,N 和 Q,接下来的 N 行。每行包含一个整数,表示奶牛的高度,最后 Q 行,每行都包含两个整数 A 和 B,代表从 A 到 B 的奶牛范围。

2 输出

输出 Q 行,每行都包含一个整数,表示该范围内最高和最矮奶牛的高度差。

三 输入和输出样例

1 输入样例

6 3

1

7

3

4

2

5

1 5

4 6

2 2

2 输出样例

6

3

0

四 分析和设计

1 分析

本问题是求解最大值和最小值只差,是典型的 RMQ 问题,可以使用 ST 解决。

2 设计

a 创建 ST

b 查询 [a,b]区间的最大值和最小值,然后输出其差值。

五 代码

package com.platform.modules.alg.alglib.poj3264;

public class Poj3264 {
    public String output = ""
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值