AT_joi2020ho_e.火事 (Fire)

NOI/NOI+/CTSC

通过率:0%

AC君温馨提醒

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

题目描述

JOI 村有 NN 个区块,编号为 11 到 NN。这些区块按编号顺序排成一行。现在,每个区块都发生了火灾,时刻 00 时第 ii 个区块(1≤i≤N1 \leq i \leq N)的火势为 SiS_i(Si>0S_i > 0)。

在时刻 00,从区块 11 向区块 NN 的方向开始刮风。对于相邻的两个区块,在时刻 tt(0≤t0 \leq t)时,如果上风区块的火势比下风区块的火势强,则在时刻 t+1t+1 时,下风区块的火势会变为时刻 tt 上风区块的火势。否则,在时刻 t+1t+1 时,下风区块的火势保持不变。也就是说,设时刻 tt(0≤t0 \leq t)第 ii 个区块的火势为 Si(t)S_i(t),则对于 1≤t1 \leq t,有 Si(t)=max⁡{Si−1(t−1),Si(t−1)}S_i(t) = \max\{S_{i-1}(t-1), S_i(t-1)\}。其中,任意 tt(0≤t0 \leq t)下 S0(t)=0S_0(t) = 0,任意 ii(1≤i≤N1 \leq i \leq N)下 Si(0)=SiS_i(0) = S_i。

你作为消防员,计划了 QQ 次灭火行动。你只会选择其中一个计划来执行。第 jj 个计划(1≤j≤Q1 \leq j \leq Q)是在时刻 TjT_j,对所有满足 Lj≤k≤RjL_j \leq k \leq R_j 的区块 kk 喷洒灭火剂,将这些区块的火扑灭。扑灭火势为 ss 的区块需要 ss 升灭火剂。也就是说,第 jj 个计划需要 SLj(Tj)+SLj+1(Tj)+⋯+SRj(Tj)S_{L_j}(T_j) + S_{L_j+1}(T_j) + \cdots + S_{R_j}(T_j) 升灭火剂。

为了选择要执行的计划,你需要知道每个计划所需的灭火剂量。

给定时刻 00 的火势信息和灭火计划的信息,请编写程序,计算每个计划所需的灭火剂总量。

输入格式

输入从标准输入读入,格式如下。所有输入均为整数。

NN QQ
S1S_1 S2S_2 ⋯\cdots SNS_N
T1T_1 L1L_1 R1R_1
⋮\vdots
TQT_Q LQL_Q RQR_Q

输出格式

输出 QQ 行。第 jj 行(1≤j≤Q1 \leq j \leq Q)输出第 jj 个计划所需的灭火剂总量。

输入输出样例

  • 输入#1

    5 5
    9 3 2 6 5
    1 1 3
    2 1 5
    3 2 5
    4 3 3
    5 3 5

    输出#1

    21
    39
    33
    9
    27
  • 输入#2

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

    输出#2

    28
    21
    34
    4
    64
    43
    55
    9
    27
    9
  • 输入#3

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

    输出#3

    9
    9
    3
    4
    3
    4
    5
    9
    9
    9
  • 输入#4

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

    输出#4

    28
    27
    34
    4
    64
    43
    55
    9
    27
    9
  • 输入#5

    20 20
    2 1 2 2 1 1 1 1 2 2 2 1 2 1 1 2 1 2 1 1
    1 1 14
    2 3 18
    4 10 15
    8 2 17
    9 20 20
    4 8 19
    7 2 20
    11 1 5
    13 2 8
    20 1 20
    2 12 15
    7 1 14
    12 7 18
    14 2 17
    9 19 20
    12 12 12
    6 2 15
    11 2 15
    19 12 17
    4 1 20

    输出#5

    25
    30
    12
    32
    2
    24
    38
    10
    14
    40
    8
    28
    24
    32
    4
    2
    28
    28
    12
    40

说明/提示

数据范围

  • 1≤N≤200 0001 \leq N \leq 200\,000。
  • 1≤Q≤200 0001 \leq Q \leq 200\,000。
  • 1≤Si≤1 000 000 0001 \leq S_i \leq 1\,000\,000\,000(1≤i≤N1 \leq i \leq N)。
  • 1≤Tj≤N1 \leq T_j \leq N(1≤j≤Q1 \leq j \leq Q)。
  • 1≤Lj≤Rj≤N1 \leq L_j \leq R_j \leq N(1≤j≤Q1 \leq j \leq Q)。

子任务

1.(1 分)N≤200N \leq 200,Q≤200Q \leq 200。
2.(6 分)T1=T2=⋯=TQT_1 = T_2 = \cdots = T_Q。
3.(7 分)Lj=RjL_j = R_j(1≤j≤Q1 \leq j \leq Q)。
4.(6 分)Si≤2S_i \leq 2(1≤i≤N1 \leq i \leq N)。
5.(80 分)无额外限制。

样例说明 1

  • 时刻 00 各区块的火势为 9,3,2,6,59, 3, 2, 6, 5。
  • 时刻 11 各区块的火势为 9,9,3,6,69, 9, 3, 6, 6,因此第 11 个计划所需灭火剂为 9+9+3=219 + 9 + 3 = 21 升。
  • 时刻 22 各区块的火势为 9,9,9,6,69, 9, 9, 6, 6,因此第 22 个计划所需灭火剂为 9+9+9+6+6=399 + 9 + 9 + 6 + 6 = 39 升。
  • 时刻 33 各区块的火势为 9,9,9,9,69, 9, 9, 9, 6,因此第 33 个计划所需灭火剂为 9+9+9+6=339 + 9 + 9 + 6 = 33 升。
  • 时刻 44 各区块的火势为 9,9,9,9,99, 9, 9, 9, 9,因此第 44 个计划所需灭火剂为 99 升。
  • 时刻 55 各区块的火势为 9,9,9,9,99, 9, 9, 9, 9,因此第 55 个计划所需灭火剂为 9+9+9=279 + 9 + 9 = 27 升。

输入样例 11 满足子任务 1,51, 5 的限制。

样例说明 2

输入样例 22 满足子任务 1,51, 5 的限制。

样例说明 3

输入样例 33 满足子任务 1,3,51, 3, 5 的限制。

样例说明 4

输入样例 44 满足子任务 1,2,51, 2, 5 的限制。

样例说明 5

输入样例 55 满足子任务 1,4,51, 4, 5 的限制。

由 ChatGPT 4.1 翻译

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

首页