AT_arc191_d.[ARC191D] Moving Pieces on Graph
NOI/NOI+/CTSC
通过率:0%
AC君温馨提醒
该题目为【atcoder】题库的题目,您提交的代码将被提交至atcoder进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。
题目描述
给定一个包含 N 个顶点和 M 条边的简单连通无向图。顶点编号为 1 至 N,边编号为 1 至 M。边 i 双向连接顶点 ui 和顶点 vi。
初始时,棋子 A 位于顶点 S,棋子 B 位于顶点 T(S 和 T 由输入给出)。
你可以按任意顺序执行以下操作任意次:
- 选择棋子 A 或棋子 B,将其移动到当前顶点通过边直接连接的另一个顶点。操作后,棋子 A 和 B 不能处于同一顶点。
你的目标是将棋子 A 移动到顶点 T,同时将棋子 B 移动到顶点 S。
请判断是否可以达成目标。若可以,输出所需的最小操作次数;否则输出 −1。
输入格式
输入通过标准输入给出,格式如下:
N M S T
u1 v1
u2 v2
⋮
uM vM
输出格式
若无法达成目标,输出 −1;否则输出所需的最小操作次数。
输入输出样例
输入#1
4 4 3 4 2 4 1 4 3 4 2 3
输出#1
3
输入#2
2 1 1 2 1 2
输出#2
-1
输入#3
5 6 3 5 1 2 2 3 1 5 2 4 1 3 2 5
输出#3
4
说明/提示
约束条件
- 2≤N≤2×105
- N−1≤M≤min(2N(N−1),2×105)
- 1≤ui<vi≤N
- 给定的图是简单且连通的
- 1≤S,T≤N
- S=T
- 输入均为整数
样例解释 1
例如,通过以下操作可在 3 次操作内达成目标:
- 将棋子 A 移动到顶点 2(此时 A 在顶点 2,B 在顶点 4)。
- 将棋子 B 移动到顶点 3(此时 A 在顶点 2,B 在顶点 3)。
- 将棋子 A 移动到顶点 4(此时 A 在顶点 4,B 在顶点 3)。
由于无法在少于 3 次操作内完成目标,因此输出 3。
样例解释 2
无论以何种方式操作,均无法达成目标。
翻译由 DeepSeek R1 完成
输入解题思路,AI测评打分。不知道怎么写?