#CF2137F. Prefix Maximum Invariance

    ID: 6955 传统题 1000ms 256MiB 尝试: 1 已通过: 1 难度: 10 上传者: 标签>二分组合数学数据结构排序CodeforcesCodeforces Round 1047(Div3)Div3FCF2137F1900

Prefix Maximum Invariance

题目描述

给定两个长度均为 mm 的数组 xxyy,设 zz 是另一个长度为 mm 的数组,且 zz 每个位置的前缀最大值xx 对应位置的前缀最大值相同。形式化地说,需满足对所有 1im1 \leq i \leq m,都有 $\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 的整数序列 aabb,请计算双重求和 $\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])。

输入格式

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

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

  • 第一行:一个整数 nn1n2×1051 \leq n \leq 2 \times 10^5
  • 第二行:nn 个整数 a1,a2,,ana_1,a_2,\ldots,a_n1ai2n1 \leq a_i \leq 2 \cdot n
  • 第三行:nn 个整数 b1,b2,,bnb_1,b_2,\ldots,b_n1bi2n1 \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”为笔误,结合题目描述与样例,实际需输出上述双重求和结果)

样例

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
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]

来源

Codeforces 2137F,英文题名 Prefix Maximum Invariance。