AT_joi2022_yo2_e 交易計画 (Trade Plan)
题目描述
### 题目简述
有一张 $N$ 点 $M$ 边的无向图。节点的编号从 $1$ 到 $N$,第 $i$ 条边连接点 $U_i$ 和点 $V_i$($1\le i\le M$)。
现在每个点都被染上了 $K$ 种颜色中的一种。颜色的编号从 $1$ 到 $K$,节点 $j$ 的颜色是 $S_j$($1\le j\le N$)。保证对于任一整数 $x\in [1,K]$,都有至少一个整数 $j\in [1,N]$ 满足 $S_j=x$。
有 $Q$ 次询问,第 $k$ 次询问给出两个整数 $A_k,B_k$($1\le k\le Q$),问从 $A_k$ 到 $B_k$ 的路径中,是否有一条仅经过了染有颜色 $S_{A_k}$ 和 $S_{B_k}$ 的点($S_{A_k}=S_{B_k}$ 的情况下仅有 $S_{A_k}$)。如果有请输出 `1`,否则请输出 `0`。
输入格式
输入以以下格式从标准输入给出。
>$N$ $M$ $K$
>$U_1$ $V_1$
>$U_2$ $V_2$
>...
>$U_M$ $V_M$
>$S_1$ $S_2$ ... $S_N$
>$Q$
>$A_1$ $B_1$
>$A_2$ $B_2$
>...
>$A_Q$ $B_Q$
输出格式
共 $Q$ 行,第 $k$ 行的输出内容如下($1\le k\le Q$):
- 若存在符合条件的路径,输出 `1`;
- 否则,输出 `0`。
说明/提示
#### 样例解释
样例 #1,#2,#4 满足子任务 $1,3,4$ 的限制。
样例 #3 满足全部子任务的限制。
#### 数据规模与约定
对于 $100\%$ 的测试点,保证:
- $2\le N\le 400000$,$1\le M\le 400000$,$1\le K\le N$;
- $1\le U_i\lt V_i\le N$($1\le i\le M$),图中无重边;
- $1\le S_j\le K$($1\le j\le N$),且对于所有整数 $l$ 满足 $1\le l\le K$,都有至少一个 $j$ 满足 $1\le j\le N$ 且 $S_j=l$;
- $1\le Q\le 400000$;
- $1\le A_k,B_k\le N$,$A_k\neq B_k$($1\le k\le Q$);
- 输入数据均为整数。
**本题采取捆绑测试。** 各子任务分值及特殊限制如下:
| 子任务编号 | 分值 | 特殊限制 |
| :----------: | :----------: | :----------: |
| $1$ | $5$ | $N,M,Q\le 1000$ |
| $2$ | $11$ | 对于任意满足 $1\le l\le K$ 的整数 $l$,所有满足 $S_j=l$ 的城市可以仅通过同一颜色的点直接到达 |
| $3$ | $42$ | $N,M,Q\le 80000$ |
| $4$ | $42$ | 无特殊限制 |