#D0664. 排列交集2

排列交集2

题目描述

给你两个长度为 nn 的序列 aabb ,它们都是由 1n1\sim n 组成的排列。

aa11nn 的每个数都正好出现一次,bb 也是这样。

你需要对它们进行两种类型的查询:

  • 1 l r x y1\ l\ r\ x\ y,查询有多少个数既在 alara_l\sim a_r 中出现,又在 bxbyb_x\sim b_y 中出现。
  • 2 x y2\ x\ y,交换 bb 中第 xx 个数与第 yy 个数。

输入格式

第一行包含两个整数 nnmm,两个排列中的元素个数和查询次数。

第二行包含 nn 个整数 a1,a2,,ana_1, a_2, \dots, a_n

第三行包含 nn 个整数 b1,b2,,bnb_1, b_2, \dots, b_n

接下来的 mm 行,每行对应一个询问,格式如题面描述。

输出格式

对于每个第一种查询,输出一行一个整数,为对应的答案。

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

数据规模与约定

对于 60%60\% 的数据,保证没有操作 2。

对于 100%100\% 的数据,n,m5000n,m\le 5000,其他所有数据保证合法。

来源

https://codeforces.com/problemset/problem/1093/E