#214. [ABC289E] Swap Places
[ABC289E] Swap Places
题面翻译
给定一个 个点 条边的无向图,满足 。
每个点有一个点权,值可以为 或 。
两个人分别在点 和 ,每次他们同时向自己这个结点的任意一个邻居移动,任意时刻,他们所在的结点的权值不得相同。最后要使得他们互相交换位置。
请求出最小次数,如果无解,输出 。
输入格式
本题有多组测试数据。第一行先输入 代表测试数据组数。
每一组测试数据先输入两个整数 与 。
接下来一行输入 个空格隔开的整数分别代表 代表每个点的点权。
接下来 行每行输入两个空格隔开的整数代表 代表图中的一条无向边。
输出格式
输出 行。 第 行应包含第 组测试数据的答案。
对于每个测试用例,打印两个人交换位置的最小步数,若不可能交换打印 -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 解释
对于第 组测试数据,高桥和青木可以通过下出 步来实现目标,这是最少的步数:
- 高桥下到顶点 ,青木下到顶点 。
- 高桥下到顶点 ,青木下到顶点 。
- 高桥移至顶点 ,青木移至顶点 。
注意在 这步棋中,不允许高桥和青木同时下到顶点 (因为高桥和青木所下顶点的颜色必须不同)。
对于第 组测试数据,无论他们如何移动,都无法实现目标。