#4544. Swap Places

0

Swap Places

Swap Places

题目描述

有一个无向简单图,包含编号为 11 到 NN 的 NN 个顶点和编号为 11 到 MM 的 MM 条边。边 ii 连接顶点 uiu_i 和顶点 viv_i。
每个顶点被涂成红色或蓝色。顶点 ii 的颜色由 CiC_i 表示;若 CiC_i 为 00 则顶点 ii 为红色,若 CiC_i 为 11 则为蓝色。 现在,Takahashi 在顶点 11,Aoki 在顶点 NN。
他们可以重复以下动作零次或多次。

两人同时各自移动到与当前顶点相邻的某个顶点。
此处,Takahashi 与 Aoki 移动到的两个顶点的颜色必须不同。

通过重复上述移动,Takahashi 和 Aoki 能否同时最终分别到达顶点 NN 和 11?
若可能,求所需的最小移动次数。若不可能,输出 −1-1。 输入的开头给出 TT。对 TT 个测试用例分别求解。

输入格式

输入按标准输入格式给出,其中 testi\text{test}_i 表示第 ii 个测试用例: TT test1\text{test}_1 test2\text{test}_2 ⋮\vdots testT\text{test}_T

每个测试用例按照以下格式给出: NN MM C1C_1 C2C_2 …\dots CNC_N u1u_1 v1v_1 u2u_2 v2v_2 ⋮\vdots uMu_M vMv_M

输出格式

输出 TT 行。第 ii 行应当包含第 ii 个测试用例的答案。
对于每个测试用例,若 Takahashi 和 Aoki 可以同时分别到达顶点 NN 和 11,则输出所需的最小移动次数;否则输出 −1-1。

3
4 4
0 1 0 1
1 2
2 3
1 3
2 4
3 3
0 1 0
1 2
2 3
1 3
6 6
0 0 1 1 0 1
1 2
2 6
3 6
4 6
4 5
2 4
3
-1
3

提示

1≤T≤10001 \leq T \leq 1000 2≤N≤20002 \leq N \leq 2000 1≤M≤min⁡(N(N−1)2,2000)1 \leq M \leq \min(\frac{N(N-1)}{2}, 2000) Ci∈{0,1}C_i \in \lbrace 0, 1 \rbrace 1≤ui,vi≤N1 \leq u_i, v_i \leq N 输入中给出的图为简单图。 输入中的所有数值均为整数。 所有测试用例中 NN 的和不超过 20002000。 所有测试用例中 MM 的和不超过 20002000。对于第 11 个测试用例,Takahashi 和 Aoki 可以通过下面的 33 次移动实现目标,且这是最少的:

Takahashi 移到顶点 33,Aoki 移到顶点 22。 Takahashi 移到顶点 22,Aoki 移到顶点 33。 Takahashi 移到顶点 44,Aoki 移到顶点 11。

注意在第 11 次移动中,不允许两人都移动到顶点 22(因为 Takahashi 与 Aoki 移动到的顶点颜色必须不同)。 对于第 22 个测试用例,无论如何移动,他们都不能实现目标。

标签: AtCoder|abc289E

来源

AtCoder|abc289E