luogu#P16333. [DSDOI Round 1] 邓少分小组

[DSDOI Round 1] 邓少分小组

背景

邓少是一个学校的老师,他需要给学生分组。

题目描述

具体地,邓少有 nn 个学生,编号为 1,2,3,,n1,2,3,\dots,n。邓少需要选出其中连续的一部分人分组成一个小组,具体地,他需要选出一个区间 [L,R][L,R],让编号在 LLRR 之间的人组成一个小组。

邓少让每个人选出一个喜欢的人,记 AiA_i 表示编号为 ii 的人喜欢的人,邓少要求 AA 是一个排列

同时,邓少给每个人选择了一个伙伴,记 BiB_i 表示编号为 ii 的人的伙伴,邓少保证了 BB 是一个排列

邓少希望能让同学和自己喜欢的人在一组,于是他希望:如果他选择的人的编号区间是 [L,R][L,R],那么有 i[L,R],Ai[L,R]\forall i\in[L,R],A_i\in[L,R]

同学们希望自己喜欢的人与自己喜欢的人的伙伴在一组,他们希望:如果邓少选择的人的编号区间是 [L,R][L,R],那么有 i[L,R],BAi[L,R]\forall i\in[L,R],B_{A_i}\in[L,R]

邓少当然知道同学们的心思,他想知道,有多少种选出一个小组的方式,使得选出的这个小组满足邓少和同学们的要求。

形式化题意

给定一个正整数 nn 和两个排列 A,BA,B ,求有多少个区间 [L,R][L,R] 满足:

  • i[L,R],Ai[L,R]\forall i\in[L,R],A_i \in [L,R]
  • i[L,R],BAi[L,R]\forall i\in[L,R],B_{A_i} \in [L,R]

输入格式

本题有多组测试数据。

第一行包含一个正整数 tt,表示测试数据组数。

接下来包含 tt 组数据,每组数据的格式如下:

第一行包含一个正整数 nn,表示学生数量。

第二行包含 nn 个正整数,表示排列 AA

第三行包含 nn 个正整数,表示排列 BB

输出格式

对于每组测试数据,输出一行,包含一个正整数,表示方案数。

3
5
1 2 3 4 5
2 3 1 5 4
3
1 2 3
3 2 1
7
6 7 3 5 4 1 2
1 6 3 4 5 2 7
3
2
4

提示

【样例解释】

对于样例一的三组测试数据,符合条件的选取方法分别是:

  • [1,3],[4,5],[1,5][1,3],[4,5],[1,5]
  • [2,2],[1,3][2,2],[1,3]
  • [3,3],[4,5],[3,5],[1,7][3,3],[4,5],[3,5],[1,7]

容易发现没有其他区间满足要求。

【数据范围】

对于所有测试数据,保证:

  • 1T51 \le T \le 5
  • 1n5×1051 \le n \le 5 \times 10^5
  • 给出的 AABB 分别为长度为 nn 的全排列。
测试点编号 nn \le 特殊性质
131 \sim 3 500500 -
464 \sim 6 10510^5 AA
7207 \sim 20 5×1055 \times 10^5 -
  • 特殊性质 AA:保证 Ai=iA_i=i