#P12114. [NWRRC2024] Just Half is Enough
[NWRRC2024] Just Half is Enough
Description
Jacob 正在学习图论。今天他了解到,有向图的 拓扑排序 是指对图中顶点的一个线性排序,使得对于图中的每一条有向边 , 在排序中总是位于 之前。
众所周知,拓扑排序仅适用于无环图。那么我们如何将这个概念推广到任意图呢?
Jacob 提出了 半拓扑排序 的概念:图的顶点的一个线性排序,使得 至少一半 的有向边 满足 在排序中位于 之前。
换句话说,如果图有 条边,对于某个排序,有 条边满足上述条件,则当 时,该排序被称为 半拓扑排序。
请帮助 Jacob 找出给定图的任意一个半拓扑排序,或者报告不存在这样的排序。
Input Format
每个测试包含多个测试用例。第一行包含测试用例数量 ()。接下来是各测试用例的描述。
每个测试用例的第一行包含两个整数 和 ,分别表示图中的顶点数和边数(;)。
接下来的 行中,第 行包含两个整数 和 ,描述一条从顶点 到顶点 的有向边(;)。图中不包含重边:每条有向边 最多出现一次。但是,同时存在边 和 是允许的。
保证所有测试用例的 之和不超过 , 之和不超过 。
Output Format
对于每个测试用例,如果不存在满足条件的半拓扑排序,则输出单个整数 。
否则,输出 个不同的整数 ,表示图的排序()。对于至少 条边 ,整数 必须位于整数 之前。如果有多个解,输出任意一个即可。
2
3 3
1 2
2 3
3 1
5 6
4 2
2 1
4 3
1 4
3 2
3 5
1 2 3
3 1 5 4 2
京公网安备 11011102002149号