P14532 [RMI 2018] 颜色 / Colors
题目背景
翻译来自于 [LibreOJ](https://loj.ac/p/5127)。
题目描述
**题目译自 [Romanian Master of Informatics 2018](https://rmi.lbi.ro/rmi_2018/) Day2 T1 「[Colors](https://rmi.lbi.ro/rmi_2018/_dwl/public.zip)」**
你有一个包含 $N$ 个节点和 $M$ 条边的连通无向图。初始时,每个节点 $u$ 有一个颜色 $a_u$,用一个介于 $1$ 到 $N$ 的整数表示。你可以反复修改节点的颜色,通过操作 $a_u = \min(a_u, a_v)$,其中 $u$ 和 $v$ 是通过边连接的节点。
给定目标颜色数组 $b_1, \ldots b_N$,你的任务是判断是否能通过上述操作将颜色数组 $a$ 转换为 $b$。
输入格式
每个输入文件包含多组测试数据,你需要分别回答每组测试数据。
第一行包含一个整数 $T$,表示测试数据的数量。每组测试数据的结构如下:
- 第一行包含两个整数 $N$ 和 $M$ 分别表示节点数和边数。
- 接下来一行包含 $N$ 个整数 $a_1, a_2, \ldots, a_N$,表示初始颜色。
- 接下来一行包含 $N$ 个整数 $b_1, b_2, \ldots, b_N$,表示目标颜色。
- 接下来的 $M$ 行每行包含两个整数 $u_i, v_i$,表示节点 $u_i$ 和 $v_i$ 之间有一条边。
输出格式
对于每组测试数据,如果可以通过上述操作将 $a$ 转换为 $b$,输出一行 $1$,否则输出 $0$。
说明/提示
### 样例 1 解释
在第一组测试数据中,图是一个包含 $4$ 个节点和 $4$ 条边的连通图。需要的操作如下:
- $a_2 = \min(a_2, a_3) = 2$
- $a_1 = \min(a_1, a_2) = 2$
- $a_2 = \min(a_2, a_4) = 1$
通过这些操作,初始颜色 $a = [3, 3, 2, 1]$ 可以转换为目标颜色 $b = [2, 1, 2, 1]$,因此输出 $1$。
在第二组测试数据中,无法通过上述操作将初始颜色 $a = [3, 3, 2, 1]$ 转换为目标颜色 $b = [1, 2, 2, 1]$,因此输出 $0$。
### 数据范围
对于所有输入数据,满足:
- 对于所有测试数据,$N \leq 150000$,$M \leq 200000$
- 所有测试数据组的 $N$ 之和 $\leq 300000$,$M$ 之和 $\leq 400000$
- 对于所有 $1 \leq i \leq N$,$1 \leq a_i,b_i \leq N$
详细子任务附加限制及分值如下表所示。
| 子任务 | 分值 | 附加限制 |
| :----: | :----: | :-------: |
| $1$ | $15$ | 图为星形图($M = N - 1$,一个节点连接到所有其他节点),所有测试数据的 $N^2$ 之和 $\leq 5000000$ |
| $2$ | $7$ | 图为完全图,$N \leq 50$,所有测试数据的 $N \times M$ 之和 $\leq 12000000$ |
| $3$ | $8$ | 图为一条链($M = N - 1$,边形成单路径),所有测试数据的 $N^2$ 之和 $\leq 5000000$ |
| $4$ | $15$ | 图为一条链,无进一步限制 |
| $5$ | $7$ | 图为树,所有测试数据的 $N^2$ 之和 $\leq 5000000$ |
| $6$ | $16$ | 图为树,初始颜色 $a$ 是 $\{1, 2, \ldots, N\}$ 的一个排列 |
| $7$ | $10$ | 所有测试数据的 $N \times M$ 之和 $\leq 5000000$ |
| $8$ | $22$ | 无附加限制 |