CF2057D.Gifts Order

普及+/提高

通过率:0%

AC君温馨提醒

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

题目描述

“T-Generation” 队计划采购一些毛衣以满足多种需求,他们拥有 nn 件毛衣编号从 11 至 nn。第 ii 件毛衣的尺寸为 aia_i。现在,他们需要选出某段连续的毛衣送去参加奥林匹克竞赛。这些毛衣必须尽可能适合更多的人,同时又不能选择得太多。

他们需要选择两个下标 ll 和 rr(1≤l≤r≤n1 \le l \le r \le n),使便利性最大化。便利性定义为 max⁡(al,al+1,…,ar)−min⁡(al,al+1,…,ar)−(r−l)\operatorname{max}(a_l, a_{l + 1}, \ldots, a_r) - \operatorname{min}(a_l, a_{l + 1}, \ldots, a_r) - (r - l),也就是尺寸的范围减去所选毛衣数量。

考虑到毛衣的尺寸可能会发生变化,总共有 qq 次这样的变动。每次变化中,第 pp 件毛衣的尺寸变为 xx。

请帮助 “T-Generation” 团队计算出在所有可能的 (l,r)(l, r) 对中,初次和每次尺寸调整后的最大便利性。

输入格式

输入包含多个测试用例。第一行是一个整数 tt(1≤t≤1041 \le t \le 10^4)表示测试用例的数量。随后是每个测试用例的描述。

每个测试用例的第一行包含两个整数 nn 和 qq(1≤n,q≤2⋅1051 \le n, q \le 2 \cdot 10^5),分别表示毛衣总数和尺寸变化的次数。

接下来的第二行包括 nn 个整数 a1,a2,…,ana_1, a_2, \ldots, a_n(1≤ai≤1091 \le a_i \le 10^9),表示每件毛衣的尺寸。

此后 qq 行,每行包含两个整数 pp 和 xx(1≤p≤n1 \le p \le n, 1≤x≤1091 \le x \le 10^9),表示一次尺寸变化,第 pp 件毛衣的尺寸变为 xx。

保证所有测试用例中所有 nn 的总和以及所有 qq 的总和不超过 2⋅1052 \cdot 10^5。

输出格式

对于每个测试用例,输出在操作前以及每次尺寸变化后,所有可能的 (l,r)(l, r) 对中最大便利性。

输入输出样例

  • 输入#1

    3
    2 2
    1 10
    1 10
    2 2
    5 3
    1 2 3 4 5
    3 7
    1 4
    5 2
    8 5
    7 4 2 4 8 2 1 4
    5 4
    1 10
    3 2
    8 11
    7 7

    输出#1

    8
    0
    7
    0
    4
    4
    4
    5
    3
    6
    6
    9
    7

说明/提示

来看第一个测试用例的情况:

  • 在没有变化之前,可以选取所有毛衣,此时便利性等于 max⁡(a1,a2)−min⁡(a1,a2)−(2−1)=10−1−1=8\operatorname{max}(a_1, a_2) - \operatorname{min}(a_1, a_2) - (2 - 1) = 10 - 1 - 1 = 8。
  • 第一次查询后,两件毛衣的尺寸都变为 1010,只能选取第一件毛衣,此时便利性等于 10−10−0=010 - 10 - 0 = 0。
  • 第二次查询后,第一件毛衣的尺寸为 1010,第二件为 22,可以选取所有毛衣,便利性为 max⁡(a1,a2)−min⁡(a1,a2)−(2−1)=10−2−1=7\operatorname{max}(a_1, a_2) - \operatorname{min}(a_1, a_2) - (2 - 1) = 10 - 2 - 1 = 7。

本翻译由 AI 自动生成

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

首页