P10683 [COTS 2024] 划分 Particija

题目背景

译自 [Izborne Pripreme 2024 (Croatian IOI/CEOI Team Selection)](https://hsin.hr/pripreme2024/) D2T1。$\texttt{1s,512M}$。

题目描述

给定正整数 $ N $。 集合 $ \{1, 2, \ldots, N\} $ 的**划分**为由非空集合组成的集族,满足: - $\forall 1\le i\le N$,$i$ 出现在**恰好一个**集合中。 例如,$\{\{1,3\},\{2,4\},\{5\}\}$ 是集合 $ \{1, 2, 3, 4, 5\} $ 的一个划分。 可以用数列 $ [x_1, x_2, \ldots, x_N ]$ 来表示划分。当且仅当 $ x_i = x_j $ 时,$ i $ 和 $ j $ 在同一个集合中。上面提到的划分 $\{\{1,3\},\{2,4\},\{5\}\}$ 可以由数列 $[1, 2, 1, 2, 3]$ 或者 $[5, 1, 5, 1, 4]$ 表示。 Patricija 拥有两个划分:第一个划分用数列 $ [a_1, a_2, \ldots, a_N] $ 表示,第二个划分用数列 $ [b_1, b_2, \ldots, b_N] $ 表示。 Patricija 想知道以下问题的答案:如果她使用这两个划分中的集合,来构造集合 $ \{1, 2, \ldots, N\} $ 的划分,至少需要多少个集合。 给定参数 $k\in \{0,1,2\}$, - 当 $k=0$ 时,你需要回答原问题的答案。 - 当 $k=1$ 时,允许更改 $2N$ 个数字($a_1,\cdots,a_N,b_1,\cdots,b_N$)中**至多**一个,**最小化**构造划分需要的最少集合数。 - 当 $k=2$ 时,允许更改 $2N$ 个数字($a_1,\cdots,a_N,b_1,\cdots,b_N$)中**至多**一个,**最大化**构造划分需要的最少集合数。 请注意,你需要保证在你修改后,$\forall 1\le i\le N$,$1\le a_i,b_i\le N$。

输入格式

**本题单个测试点内有多组测试数据。** 第一行,两个整数 $T,k$,分别表示测试数据数量,以及参数。 接下来依次描述 $T$ 组测试数据: 对于每组测试数据,输入三行。 第一行,一个正整数 $N$,含义见题面; 第二行,$N$ 个正整数,依次表示 $a_1,a_2,\cdots,a_N$; 第三行,$N$ 个正整数,依次表示 $b_1,b_2,\cdots,b_N$。

输出格式

对于每组测试数据,输出一行一个整数,表示所求的答案。

说明/提示

#### 样例解释 样例 $1$ 解释: 对于第一组数据,第一个划分为 $\{\{1,2\},\{3\},\{4\}\}$,第二个划分为 $\{\{1\},\{2\},\{3,4\}\}$。选取 $\{1,2\},\{3,4\}$ 即可。 对于第二组数据,第一个划分为 $\{\{1,2,3,4\},\{5\},\{6\},\{7\}\}$,第二个划分为 $\{\{1\},\{2\},\{3\},\{4,5,6,7\}\}$。选取第一个划分或第二个划分即可。 #### 数据范围 对于 $100\%$ 的数据,保证: - $1\le T\le 200\, 000$,$k\in \{0,1,2\}$; - $1\le a_i,b_i\le N$; - $1\le N,\sum N\le 200\, 000$。 | 子任务编号 | 分值 | 约束 | |:-----:|:------:|:-------:| | $1$ | $7$ | $k=0,N\le 8,\sum 2^N\le 10^5$ | | $2$ | $23$ | $k=0$ | | $3$ | $15$ | $k=1,N\le 1\, 000,\sum N^2\le 10^6$ | | $4$ | $16$ | $k=1$ | | $5$ | $19$ | $k=2,N\le 1\, 000,\sum N^2\le 10^6$ | | $6$ | $20$ | $k=2$ |