QOJ.ac

QOJ

Type: Editorial

Status: Open

Posted by: jiangly

Posted at: 2025-12-13 00:12:37

Last updated: 2025-12-13 00:12:42

Back to Problem

题解

有解的一个必要条件是 $a$ 是唯一的源点且 $b$ 是唯一的汇点。不妨设拓扑序为 $1,2,\ldots,n$,则 $a=1,b=n$。可以发现只需要每个 $1$ 以外的点选择一条向前的边,每个 $n$ 以外的点选择一条向后的边即可。

我们可以把每个点拆成入点和出点,对于每条边 $(u,v)$,在 $u$ 的出点和 $v$ 的入点之间连边。问题转化为了为每个点选择一条互不相同的邻边。这个问题有解当且仅当所有连通块都不是树,且有解时可以简单构造。

时间复杂度 $O(n+m)$。

Comments

No comments yet.