AT_abc379_f.[ABC379F] Buildings 2

提高+/省选-

通过率:0%

AC君温馨提醒

该题目为【atcoder】题库的题目,您提交的代码将被提交至atcoder进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。

题目描述

有 NN 栋建筑从西向东依次排列,编号为建筑 11 到建筑 NN,其中建筑 11 位于最西侧,建筑 NN 位于最东侧。建筑 ii(1≤i≤N1 \leq i \leq N)的高度为 HiH_i。

对于整数对 (i,j)(i,j)(1≤i<j≤N1 \leq i < j \leq N),当满足以下条件时,可以从建筑 ii 看到建筑 jj:

  • 在建筑 ii 和建筑 jj 之间不存在比建筑 jj 更高的建筑。即,不存在整数 kk(i<k<ji < k < j)满足 Hk>HjH_k > H_j。

现在需要回答 QQ 个询问。第 ii 个询问给出整数对 (li,ri)(l_i, r_i)(li<ril_i < r_i),要求统计在建筑 rir_i 东侧的建筑(即建筑 ri+1r_i+1, 建筑 ri+2r_i+2, …\ldots, 建筑 NN)中,能够同时从建筑 lil_i 和建筑 rir_i 看到的建筑数量。

输入格式

输入通过标准输入给出,格式如下:

NN QQ
H1H_1 H2H_2 …\ldots HNH_N
l1l_1 r1r_1
l2l_2 r2r_2
⋮\vdots
lQl_Q rQr_Q

输出格式

输出 QQ 行。第 ii 行(1≤i≤Q1 \leq i \leq Q)输出第 ii 个询问的答案。

输入输出样例

  • 输入#1

    5 3
    2 1 4 3 5
    1 2
    3 5
    1 4

    输出#1

    2
    0
    1
  • 输入#2

    10 10
    2 1 5 3 4 6 9 8 7 10
    3 9
    2 5
    4 8
    5 6
    3 8
    2 10
    7 8
    6 7
    8 10
    4 10

    输出#2

    1
    3
    1
    2
    1
    0
    1
    1
    0
    0

说明/提示

约束条件

  • 2≤N≤2×1052 \leq N \leq 2 \times 10^5
  • 1≤Q≤2×1051 \leq Q \leq 2 \times 10^5
  • 1≤Hi≤N1 \leq H_i \leq N
  • Hi≠HjH_i \neq H_j(i≠ji \neq j)
  • 1≤li<ri≤N1 \leq l_i < r_i \leq N
  • 输入中的所有值均为整数

样例解释 #1

  • 对于第一个询问,在建筑 22 东侧的建筑中,能够同时从建筑 11 和建筑 22 看到的建筑有建筑 33 和建筑 55,共 22 栋。
  • 对于第二个询问,建筑 55 东侧没有建筑。
  • 对于第三个询问,在建筑 44 东侧的建筑中,能够同时从建筑 11 和建筑 44 看到的建筑只有建筑 55,共 11 栋。

翻译由 DeepSeek V3 完成

输入解题思路,AI测评打分。不知道怎么写?

首页