#P9534. [YsOI2023] 广度优先遍历
[YsOI2023] 广度优先遍历
题目背景
Ysuperman 模板测试的图论题。
【数据删除】
题目描述
今天的模板测试是无向图上的广度优先遍历,【数据删除】马上写好了代码:
如你所见,这份代码会输入一个 个点 条边的无向图,并且求出这张图以 为根的一棵“广度优先遍历树”,最后输出所有点的父亲节点编号。
不过值得注意的是,这棵“广度优先遍历树”的具体形态和“边的输入顺序”有关,也就是说,不同的输入顺序可能会得到不同的父亲节点编号。
现在【数据删除】告诉了你 、这 条边以及在某个“边输入顺序”情况下他的代码的输出,你需要还原出这个“边输入顺序”。如果有多种边输入顺序对应的都是这样的输出,你只需要输出其中任意一种即可。
特别的,保证有解,且无向图连通,无自环(但是有可能有重边)。
输入格式
第一行两个正整数 分别表示无向图的点数和边数。
接下来 行每行两个整数 表示存在 与 之间存在一条无向边。
最后一行 个整数表示【数据删除】代码的输出。(由题意可知他输出的是某个“边输入顺序”情况下他得到的“广度优先遍历树”中 这些节点的父亲节点编号)
输出格式
输出包含 行,每行两个整数 表示 和 之间存在一条无向边,你的输出顺序表示你给出的“边输入顺序”。
请注意,你需要保证如果输入给出的图中 间连了 条边,那么你给出的图中 间也要连有 条边。
如果有多种“边输入顺序”合法,输出其中任意一种都会被判断为正确。另外,由于是无向边,所以你输出的一条边两个点的排列顺序对答案判定没有影响。
提示
样例 1 解释
直接运行【数据删除】的代码即可。
如果不改变边输入顺序,将下面数据输入【数据删除】的代码:
他的代码跑出来结果如下:
如果按照样例 1 输出给出的顺序,即,将下面数据输入他的代码:
输出为:
数据范围
对于前 的数据,满足 ,。
对于前 的数据,满足 ,。
另有 的数据,满足 。
对于 的数据,满足 ,。
提示
为什么有可能会有重边,因为懒得去重了,这个家伙出图论题就是懒得判重边的()
附件下发了本题 checker。