AT_aalc001_x.Unevenness

NOI/NOI+/CTSC

通过率:0%

AC君温馨提醒

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

题目描述

给你两个长度为 NN 的非负整数序列 A=(A1,A2,…,AN)A=(A_1,A_2,\ldots,A_N) 和 g=(g1,g2,…,gN)g=(g_1,g_2,\ldots,g_N),以及一个长度为 N−1N-1 的整数序列 d=(d1,d2,…,dN−1)d=(d_1,d_2,\ldots,d_{N-1})。注意,每个 gjg_j 满足 1≤gj≤21 \leq g_j \leq 2。

利用序列 gg 和 dd,对任意长度为 NN 的整数序列 B=(B1,B2,…,BN)B=(B_1,B_2,\ldots,B_N) 定义函数 f(B)f(B) 如下:

你可以任选一个长度为 NN 的整数序列 C=(C1,C2,…,CN)C=(C_1,C_2,\ldots,C_N)。定义 BB 与 CC 的代价为

[
\sum_{j=1}^{N} g_j |B_j-C_j|+\sum_{j=1}^{N-1} d_j |C_j-C_{j+1}|
]

那么,f(B)f(B) 即为在所有可能的整数序列 CC 中,上述代价的最小值。

请依次处理以下 QQ 个查询。

在第 kk 个查询中,你将收到两个整数 iki_k 和 xkx_k。将 AikA_{i_k} 修改为 xkx_k,然后计算 f(A)f(A)。

输入格式

输入从标准输入中按以下格式给出:

NN QQ
A1A_1 A2A_2 …\ldots ANA_N
g1g_1 g2g_2 …\ldots gNg_N
d1d_1 d2d_2 …\ldots dN−1d_{N-1}
i1i_1 x1x_1
i2i_2 x2x_2
⋮\vdots
iQi_Q xQx_Q

输出格式

输出 QQ 行。第 kk 行应包含第 kk 个查询中计算得到的 f(A)f(A)。

输入输出样例

  • 输入#1

    3 3
    1 5 2
    1 2 1
    3 1
    2 3
    1 6
    3 6

    输出#1

    3
    4
    6
  • 输入#2

    2 4
    0 10
    2 2
    1
    1 10
    2 0
    1 0
    2 10

    输出#2

    0
    10
    0
    10
  • 输入#3

    5 5
    8 1 7 3 9
    2 1 2 1 2
    2 1000000000 1 4
    3 0
    5 2
    1 1
    4 9
    2 6

    输出#3

    30
    18
    4
    10
    15

说明/提示

样例 1 解释:
执行查询 11 后,A=(1,3,2)A=(1,3,2)。例如,选择 C=(2,2,2)C=(2,2,2) 可得到代价为 33。代价无法低于 33,因此 f(A)=3f(A)=3。

样例 2 解释:
当 AA 的所有元素均相等时,选择 C=AC=A 可得到代价 00。

约束条件

  • 2≤N≤2×1052 \leq N \leq 2 \times 10^5
  • 1≤Q≤2×1051 \leq Q \leq 2 \times 10^5
  • 0≤Aj≤1090 \leq A_j \leq 10^9
  • 1≤gj≤21 \leq g_j \leq 2
  • 1≤dj≤1091 \leq d_j \leq 10^9
  • 1≤ik≤N1 \leq i_k \leq N
  • 0≤xk≤1090 \leq x_k \leq 10^9
  • 输入中的所有数值均为整数。

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

首页