#1185. [ABC289E] Swap Places

[ABC289E] Swap Places

题面翻译

给定一个 nn 个点 mm 条边的无向图,满足 1n,m2×1031\le n,m\le 2\times 10^3

每个点有一个点权,值可以为 0011

两个人分别在点 11nn,每次他们同时向自己这个结点的任意一个邻居移动,任意时刻,他们所在的结点的权值不得相同。最后要使得他们互相交换位置。

请求出最小次数,如果无解,输出 1-1

输入格式

本题有多组测试数据。第一行先输入 TT 代表测试数据组数。

每一组测试数据先输入两个整数 NNMM

接下来一行输入 NN 个空格隔开的整数分别代表 C1,C2,,CNC_1,C_2,\cdots,C_N 代表每个点的点权。

接下来 MM 行每行输入两个空格隔开的整数代表 Ui,ViU_i,V_i 代表图中的一条无向边。

输出格式

输出 TT 行。 第 ii 行应包含第 ii 组测试数据的答案。

对于每个测试用例,打印两个人交换位置的最小步数,若不可能交换打印 -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

提示

数据范围

  • 1T10001 \leq T \leq 1000
  • 2N20002 \leq N \leq 2000
  • 1Mmin(N(N1)2,2000)1 \leq M \leq \min(\frac{N(N-1)}{2}, 2000)
  • Ci{0,1}C_i \in \lbrace 0, 1 \rbrace
  • 1ui,viN1 \leq u_i, v_i \leq N
  • 输入中给出的图是简单图。
  • 输入中的所有值都是整数。
  • 所有测试用例中 NN 的总和不超过 20002000
  • 所有测试用例中 MM 的总和不超过 20002000

样例 1 解释

对于第 11 组测试数据,高桥和青木可以通过下出 33 步来实现目标,这是最少的步数:

  • 高桥下到顶点 33 ,青木下到顶点 22
  • 高桥下到顶点 22 ,青木下到顶点 33
  • 高桥移至顶点 44 ,青木移至顶点 11

注意在 11 这步棋中,不允许高桥和青木同时下到顶点 22 (因为高桥和青木所下顶点的颜色必须不同)。

对于第 22 组测试数据,无论他们如何移动,都无法实现目标。