P16333 [DSDOI Round 1] 邓少分小组

题目背景

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

题目描述

具体地,邓少有 $n$ 个学生,编号为 $1,2,3,\dots,n$。邓少需要选出其中连续的一部分人分组成一个小组,具体地,他需要选出一个区间 $[L,R]$,让编号在 $L$ 到 $R$ 之间的人组成一个小组。 邓少让每个人选出一个喜欢的人,记 $A_i$ 表示编号为 $i$ 的人喜欢的人,邓少要求 $A$ 是一个**排列**。 同时,邓少给每个人选择了一个伙伴,记 $B_i$ 表示编号为 $i$ 的人的伙伴,邓少保证了 $B$ 是一个**排列**。 邓少希望能让同学和自己喜欢的人在一组,于是他希望:如果他选择的人的编号区间是 $[L,R]$,那么有 $\forall i\in[L,R],A_i\in[L,R]$。 同学们希望自己喜欢的人与自己喜欢的人的伙伴在一组,他们希望:如果邓少选择的人的编号区间是 $[L,R]$,那么有 $\forall i\in[L,R],B_{A_i}\in[L,R]$。 邓少当然知道同学们的心思,他想知道,有多少种选出**一个**小组的方式,使得选出的这个小组满足邓少和同学们的要求。 ### 形式化题意 给定一个正整数 $n$ 和两个排列 $A,B$ ,求有多少个区间 $[L,R]$ 满足: - $\forall i\in[L,R],A_i \in [L,R]$。 - $\forall i\in[L,R],B_{A_i} \in [L,R]$。

输入格式

**本题有多组测试数据。** 第一行包含一个正整数 $t$,表示测试数据组数。 接下来包含 $t$ 组数据,每组数据的格式如下: 第一行包含一个正整数 $n$,表示学生数量。 第二行包含 $n$ 个正整数,表示排列 $A$。 第三行包含 $n$ 个正整数,表示排列 $B$。

输出格式

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

说明/提示

### 【样例解释】 对于样例一的三组测试数据,符合条件的选取方法分别是: - $[1,3],[4,5],[1,5]$。 - $[2,2],[1,3]$。 - $[3,3],[4,5],[3,5],[1,7]$。 容易发现没有其他区间满足要求。 ### 【数据范围】 对于所有测试数据,保证: - $1 \le T \le 5$; - $1 \le n \le 5 \times 10^5$; - 给出的 $A$ 和 $B$ 分别为长度为 $n$ 的全排列。 | 测试点编号 | $n \le$ | 特殊性质 | | :-: | :-: | :-: | | $1 \sim 3$ | $500$ | $-$ | | $4 \sim 6$ | $10^5$ | $A$ | | $7 \sim 20$ | $5 \times 10^5$ | $-$ | - 特殊性质 $A$:保证 $A_i=i$。