AT_abc289_e.[ABC289E] Swap Places
普及+/提高
通过率:0%
AC君温馨提醒
该题目为【atcoder】题库的题目,您提交的代码将被提交至atcoder进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。
题目描述
有一个 N 个顶点、M 条边的简单无向图,顶点编号为 1 到 N,边编号为 1 到 M。第 i 条边连接顶点 ui 和顶点 vi。
此外,每个顶点都被涂成红色或蓝色之一。顶点 i 的颜色用 Ci 表示,若 Ci=0,则顶点 i 被涂成红色,若 Ci=1,则被涂成蓝色。
现在,高桥君在顶点 1,青木君在顶点 N。
两人可以重复进行如下操作 0 次或多次:
- 两人同时移动到当前所在顶点相邻的某一个顶点。
但要求高桥君移动到的顶点颜色与青木君移动到的顶点颜色不同。
通过重复上述操作,能否让高桥君到达顶点 N,青木君到达顶点 1?
如果可以,请输出所需操作次数的最小值;如果不可能,请输出 −1。
输入的开头给出 T,请对 T 个测试用例分别求解。
输入格式
输入按以下格式从标准输入读入。这里 testi 表示第 i 个测试用例。
T
test1
test2
⋮
testT
每个测试用例的格式如下:
N M
C1 C2 … CN
u1 v1
u2 v2
⋮
uM vM
输出格式
输出 T 行。第 i 行输出第 i 个测试用例的答案。
对于每个测试用例,若可以让高桥君到达顶点 N,青木君到达顶点 1,则输出所需操作次数的最小值;否则输出 −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
输出#1
3 -1 3
说明/提示
限制条件
- 1≤T≤1000
- 2≤N≤2000
- 1≤M≤min(2N(N−1), 2000)
- Ci∈{0,1}
- 1≤ui,vi≤N
- 输入给出的图是简单图
- 输入的所有值均为整数
- 所有测试用例中 N 的总和不超过 2000
- 所有测试用例中 M 的总和不超过 2000
样例解释 1
对于第 1 个测试用例,高桥君和青木君可以按如下方式行动,在 3 次操作内达到目标状态,且这是最小次数。
- 高桥君移动到顶点 3,青木君移动到顶点 2。
- 高桥君移动到顶点 2,青木君移动到顶点 3。
- 高桥君移动到顶点 4,青木君移动到顶点 1。
注意,在第 1 次移动时,两人不能都移动到顶点 2。(因为高桥君和青木君移动到的顶点颜色必须不同。)
对于第 2 个测试用例,无论两人如何行动,都无法达到目标状态。
由 ChatGPT 4.1 翻译
输入解题思路,AI测评打分。不知道怎么写?