CF2137F.Prefix Maximum Invariance

普及+/提高

通过率:0%

AC君温馨提醒

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

题目描述

给定两个长度均为 mm 的数组 xx 和 yy,设 zz 是另一个长度为 mm 的数组,且 zz 每个位置的前缀最大值与 xx 对应位置的前缀最大值相同。形式化地说,需满足对所有 1≤i≤m1 \leq i \leq m,都有 max⁡(x1,x2,…,xi)=max⁡(z1,z2,…,zi)\max(x_1,x_2,\ldots,x_i) = \max(z_1,z_2,\ldots,z_i)。

定义 f(x,y)f(x,y) 为:在所有满足上述条件的数组 zz 中,zi=yiz_i = y_i 的位置的最大数量。

现给定两个长度均为 nn 的整数序列 aa 和 bb,请计算双重求和 ∑l=1n∑r=lnf(a[l..r],b[l..r])\sum_{l=1}^n \sum_{r=l}^n f\left( a[l..r], b[l..r] \right) 的结果。其中 a[l..r]a[l..r] 表示数组 aa 中从第 ll 个元素到第 rr 个元素的子数组(即 [al,al+1,…,ar][a_l,a_{l+1},\ldots,a_r]),b[l..r]b[l..r] 表示数组 bb 中从第 ll 个元素到第 rr 个元素的子数组(即 [bl,bl+1,…,br][b_l,b_{l+1},\ldots,b_r])。

输入格式

每组测试包含多组测试用例。第一行输入测试用例的数量 tt(1≤t≤1041 \leq t \leq 10^4),随后依次描述每组测试用例。

每组测试用例的输入格式如下:

  • 第一行:一个整数 nn(1≤n≤2×1051 \leq n \leq 2 \times 10^5)
  • 第二行:nn 个整数 a1,a2,…,ana_1,a_2,\ldots,a_n(1≤ai≤2⋅n1 \leq a_i \leq 2 \cdot n)
  • 第三行:nn 个整数 b1,b2,…,bnb_1,b_2,\ldots,b_n(1≤bi≤2⋅n1 \leq b_i \leq 2 \cdot n)

保证所有测试用例的 nn 之和不超过 2×1052 \times 10^5。

输出格式

对于每组测试用例,输出一个整数——即上述双重求和的结果。

(注:英文原题面中“the final value of f(a)f(a) assuming both players play optimally”为笔误,结合题目描述与样例,实际需输出上述双重求和结果)

输入输出样例

  • 输入#1

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

    输出#1

    5
    35
    26
    0
    24
    1

说明/提示

在第一个测试用例中,答案是以下各项的和:

  • f(a[1..1],b[1..1])=f([5],[4])=0f(a[1..1], b[1..1]) = f([5],[4]) = 0,此时使用的 zz 数组为 [5][5];
  • f(a[2..2],b[2..2])=f([3],[2])=0f(a[2..2], b[2..2]) = f([3],[2]) = 0,此时使用的 zz 数组为 [3][3];
  • f(a[3..3],b[3..3])=f([1],[1])=1f(a[3..3], b[3..3]) = f([1],[1]) = 1,此时使用的 zz 数组为 [1][1];
  • f(a[1..2],b[1..2])=f([5,3],[4,2])=1f(a[1..2], b[1..2]) = f([5,3],[4,2]) = 1,此时使用的 zz 数组为 [5,2][5,2];
  • f(a[2..3],b[2..3])=f([3,1],[2,1])=1f(a[2..3], b[2..3]) = f([3,1],[2,1]) = 1,此时使用的 zz 数组为 [3,1][3,1];
  • f(a[1..3],b[1..3])=f([5,3,1],[4,2,1])=2f(a[1..3], b[1..3]) = f([5,3,1],[4,2,1]) = 2,此时使用的 zz 数组为 [5,2,1][5,2,1]。

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

首页