#ABC289E. 交换位置

交换位置

交换位置

题目描述

有一个具有 NN 个顶点(编号为 11NN)和 MM 条边(编号为 11MM)的简单无向图。第 ii 条边连接顶点 uiu_i 和顶点 viv_i

每个顶点被涂成红色或蓝色。顶点 ii 的颜色用 CiC_i 表示;若 CiC_i00,则顶点 ii 为红色,若 CiC_i11,则为蓝色。

现在,高桥君在顶点 11,青木君在顶点 NN

他们可以重复以下移动零次或多次。

两人同时移动到各自当前顶点的一个相邻顶点。

此时,高桥君和青木君移动到的顶点的颜色必须不同。

通过重复上述移动,高桥君和青木君能否同时分别到达顶点 NN 和顶点 11?

如果可以,求所需的最少移动次数。如果不可能,输出 -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 个测试用例的答案。

对于每个测试用例,若高桥君和青木君能同时分别到达顶点 NN 和顶点 11,输出所需的最少移动次数,否则输出 -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 个测试用例,高桥君和青木君可以通过以下 33 次移动达成目标,这也是最少的移动次数:

高桥君移动到顶点 33,青木君移动到顶点 22

高桥君移动到顶点 22,青木君移动到顶点 33

高桥君移动到顶点 44,青木君移动到顶点 11

注意在第 1 次移动中,不允许高桥君和青木君都移动到顶点 22(因为两人移动到的顶点的颜色必须不同)。

对于第 2 个测试用例,无论他们如何移动,都无法达成目标。

数据范围

  • 1T10001 \le T \le 1000
  • 2N20002 \le N \le 2000
  • 1Mmin(N(N1)2,2000)1 \le M \le \min(\frac{N(N-1)}{2}, 2000)
  • Ci{0,1}C_i \in \{0, 1\}
  • 1ui,viN1 \le u_i, v_i \le N
  • 输入的图是简单图。
  • 输入中的所有值均为整数。
  • 所有测试用例的 NN 之和不超过 20002000
  • 所有测试用例的 MM 之和不超过 20002000
难度 提高
通过率
尝试 0
已通过 0
ID
2865
类型
传统题
Time Limit
2000ms
Memory Limit
1024MiB
上传者
标签