给定两个长度均为 m 的数组 x 和 y。
构造另一个长度为 m 的数组 z,要求:
z 在每个位置的前缀最大值与 x 对应位置的前缀最大值完全相同。
形式化定义:对所有 1≤i≤m,满足
max(x1,x2,…,xi)=max(z1,z2,…,zi)
定义 f(x,y):
在所有满足前缀最大值约束的合法数组 z 中,最多能有多少个位置满足 zi=yi。
现在给定两个长度均为 n 的整数序列 a 和 b,求:
$$\sum_{l=1}^{n}\sum_{r=l}^{n} f\big(\,[a_l,a_{l+1},\dots,a_r]\,,\,[b_l,b_{l+1},\dots,b_r]\,\big)
$$
输入说明
多组测试数据。
第一行输入测试组数 t(1≤t≤104)。
每组数据:
第一行输入整数 n(1≤n≤2⋅105)。
第二行输入 n 个整数 a1,a2,…,an(1≤ai≤2n)。
第三行输入 n 个整数 b1,b2,…,bn(1≤bi≤2n)。
保证所有测试数据的 n 总和不超过 2⋅105。
输出说明
对每组测试用例,输出所有区间 [l,r] 对应的 f 值之和。
样例解释(第一组)
n=3
a=[5,3,1], b=[4,2,1]
所有子区间的 f 值:
f([5],[4])=0
f([3],[2])=0
f([1],[1])=1
f([5,3],[4,2])=1
f([3,1],[2,1])=1
f([5,3,1],[4,2,1])=2
总和:0+0+1+1+1+2=5,与样例输出一致。