CF2042F.Two Subarrays

省选/NOI-

通过率:0%

AC君温馨提醒

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

题目描述

给定两个长度为 nn 的整数数组 aa 和 bb。

我们定义子数组 [l,r][l, r] 的代价为 al+al+1+⋯+ar+bl+bra_l + a_{l + 1} + \cdots + a_r + b_l + b_r。如果 l=rl = r,那么代价计算为 al+2⋅bla_l + 2 \cdot b_l。

你需要执行以下三种类型的查询:

  • "1 pp xx" — 把 apa_p 更新为 xx;
  • "2 pp xx" — 把 bpb_p 更新为 xx;
  • "3 ll rr" — 在区间 [l,r][l, r] 内找到两个不相交且非空的子数组,使它们的总代价最大,并输出这个总代价。

输入格式

第一行是一个整数 nn,表示数组的长度(2≤n≤2⋅1052 \le n \le 2 \cdot 10^5)。

第二行是 nn 个整数,分别表示数组 aa 的元素:a1,a2,…,ana_1, a_2, \dots, a_n(每个 aia_i 满足 −109≤ai≤109-10^9 \le a_i \le 10^9)。

第三行是 nn 个整数,分别表示数组 bb 的元素:b1,b2,…,bnb_1, b_2, \dots, b_n(每个 bib_i 满足 −109≤bi≤109-10^9 \le b_i \le 10^9)。

第四行是一个整数 qq,表示查询的数量(1≤q≤2⋅1051 \le q \le 2 \cdot 10^5)。

接下来的 qq 行,每行一个查询,可能是以下三种之一:

  • "1 pp xx":更新 aa 数组的第 pp 个元素为 xx;
  • "2 pp xx":更新 bb 数组的第 pp 个元素为 xx;
  • "3 ll rr":在区间 [l,r][l, r] 找到两个不重叠且非空的子数组,使它们的总代价最大,并输出该代价。

可以保证至少存在一个第三种类型的查询。

输出格式

对于每一个第三种类型的查询,输出在区间 [l,r][l, r] 内的两个不相交且非空子数组的最大可能总代价。

本翻译由 AI 自动生成

输入输出样例

  • 输入#1

    7
    3 -1 4 -3 2 4 0
    0 6 1 0 -3 -2 -1
    6
    3 1 7
    1 2 0
    3 3 6
    2 5 -3
    1 3 2
    3 1 5

    输出#1

    18
    7
    16
  • 输入#2

    10
    2 -1 -3 -2 0 4 5 6 2 5
    2 -4 -5 -1 6 2 5 -6 4 2
    10
    3 6 7
    1 10 -2
    3 5 7
    3 2 8
    2 1 -5
    2 7 4
    3 1 3
    3 3 8
    3 2 3
    1 4 4

    输出#2

    23
    28
    28
    -17
    27
    -22

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

首页