#wXTTJlydlt60x6604dc. 看牛 Watchcow
看牛 Watchcow
好的,这是整理好的题面,不含解题思路,只包含样例解释。
题目描述
给定一个 个点 条边的无向图,求一条从节点 出发,最后回到节点 的路径,并且满足每条边恰好被沿着正、反两个方向分别经过一次。
若有多种方案,输出任意一种即可。
输入格式
第一行两个整数 和 。
接下来 行,每行两个整数 和 ,表示点 和点 之间存在一条边。
输出格式
共 行,每行一个整数,共同描述出满足条件的一条路径。
数据范围
输入样例
4 5
1 2
1 4
2 3
2 4
3 4
输出样例
1
2
3
4
2
1
4
3
2
4
1
样例解释
,,边:
1-2
1-4
2-3
2-4
3-4
这个图是完全图 去掉一条边 1-3,其余边都有。
题目要求
每条无向边 必须从 到 走一次,再从 到 走一次,且路径从 1 开始并结束于 1。
一种可行的方案是走一个 欧拉回路(每条边恰好一次,不是两个方向各一次)吗?不是,因为这里要求两个方向各一次,等价于将每条无向边看成两条方向相反的有向边,然后求有向欧拉回路(每个点的入度等于出度),并且这里每个点度数显然是偶数,因此存在这样的回路。
样例输出分析
输出序列共 个节点编号(因为每条边两个方向各走一次,总步数 ,经过 个点)。
输出: 1 → 2 → 3 → 4 → 2 → 1 → 4 → 3 → 2 → 4 → 1
检查每条边在两个方向各一次:
-
边 1-2:
正向:1→2(第 1 步)
反向:2→1(第 6 步) ✅ -
边 1-4:
正向:1→4(第 7 步:1→4?不对,序列里第 7 个节点是 4,但上一步是 1,所以第 6 步到 1,第 7 步 1→4 其实是第 7 段路径从 1 到 4)
实际上 1→4 在第 7 步(1→4),4→1 在第 11 步(4→1)✅ -
边 2-3:
正向:2→3(第 2 步)
反向:3→2(第 9 步?第 9 步是 3→2 吗?第 8 个节点是 3,第 9 个节点是 2,所以 3→2 在第 8 步到第 9 步)✅ -
边 2-4:
正向:2→4(第 4 步:2→4 在第 3 步到第 4 步:3→4?不对,第 3 个节点是 3,第 4 个节点是 4,这是 3→4,不是 2→4。我们重新仔细标一下步数:
节点序列:1(1) → 2(2) → 3(3) → 4(4) → 2(5) → 1(6) → 4(7) → 3(8) → 2(9) → 4(10) → 1(11)
边(按节点序列的相邻看):- 1-2(正向)
- 2-3(正向)
- 3-4(正向)
- 4-2(正向,但这是 4→2,是边 2-4 的反向)
- 2-1(反向)
- 1-4(正向)
- 4-3(反向)
- 3-2(反向)
- 2-4(正向)
- 4-1(反向)
检查 2-4:
正向:第 9 步 2→4
反向:第 4 步 4→2 ✅ -
边 3-4:
正向:第 3 步 3→4
反向:第 7 步 4→3 ✅
每条边都恰好在两个方向各一次,并且起点终点都是 1。
因此输出合法。