#9847. 排列的交集

    ID: 9847 传统题 1000ms 256MiB 尝试: 0 已通过: 0 难度: (无) 上传者: 标签>树状数组排列区间交动态交换二维统计

排列的交集

题目描述

给定整数 nn 和两个 1,,n1,\ldots,n 的排列 a,ba,b

mm 个操作,操作有两种:

  • 1 la ra lb rb1\ l_a\ r_a\ l_b\ r_b,设 aa[la,ra][l_a,r_a] 区间内的元素集合为 SaS_a,设 bb[lb,rb][l_b,r_b] 区间内的元素集合为 SbS_b,求 SaSb\lvert S_a \bigcap S_b \rvert
  • 2 x y2\ x\ y,交换 bb 的第 xx 位与第 yy 位。

输入格式

第一行,两个整数 n,mn,m
以下两行,每行 nn 个整数,分别表示 a,ba,b1ai,bin1 \le a_i,b_i \le n)。
以下 mm 行,每行一个操作。

输出格式

对于每个 11 操作,输出答案。

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

样例分析

考虑第一个例子的第一个查询。数组 aa 在位置 [1,2][1,2] 的值是 [5,1][5,1] ,数组 bb 在位置 [4,5][4,5] 的值是 [1,4][1,4]。只有值1同时出现在两个区间中。

在第一次交换(第二个查询)之后,排列 bb 变成了 [2,1,3,5,4,6][2,1,3,5,4,6]

在第二次交换(第六个查询)之后,排列b变成了 [5,1,3,2,4,6][5,1,3,2,4,6]

数据范围与提示

对于 100%100\% 的数据:1n,m21051 \le n,m \le 2 \cdot 10^5