$\newcommand{le}{\leqslant}\newcommand{ge}{\geqslant}$

[CF1268D]Invertation in Tournament

题目链接

题意

给定 $n$ 阶竞赛图,定义“反转”一个顶点表示将和它有关的边全部反向,现要用一系列反转操作获得一个强连通竞赛图,求最短的反转序列的长度和方案数。

题解

首先我们知道当 $n \ge 4$ 时,$n$ 阶强连通竞赛图存在 $n-1$ 阶强连通子图,因此可以反转剩下的一个点,使得新图仍为强连通图。

若图已经强连通,不需反转顶点。

若图至少含有三个 SCC ,对竞赛图的 SCC 拓扑排序,取既非第一个也非最后一个 SCC 中的任一顶点反转,不妨设头尾 SCC 分别为 $H, T$ ,反转了 $u$ ,除此之外还有任意顶点 $v$ ,那么我们有路径 $H \to v \to T \to u \to H$ ,因此新图是强连通图。

若图非强连通图,且存在一个 SCC 含有至少 $4$ 个顶点,取出一个不少于 $4$ 个顶点的 SCC 中的恰当顶点反转,使得该 SCC 内的顶点保持强连通。假设反转的为 SCC $U$ 中的顶点 $u$ ,除此之外还有 SCC $V$ ,不妨设边的方向为 $U \to V$ ,那么我们有路径 $(U-u) \to V \to u \to (U-u)$ ,因此新图是强连通图。

根据上述过程,如果至少需要反转两个顶点,那么图至多有 $6$ 个顶点。当 $n \le 6$ 时,只需要枚举所有组合;当 $n>6$ 时,先看是否本身已经强连通,然后枚举反转哪个点再判断强连通。

技巧:判断竞赛图的强连通性

如果竞赛图非强连通,其拓扑序最后一个 SCC 中的所有点的出度都比其余点小,因此将出度数组排序,该竞赛图强连通当且仅当不存在 $k<n$ 使得最小的 $k$ 个出度之和为 $k \choose 2$ 。

实现链接

posted @ 2019-12-21 23:06  nealchen  阅读(734)  评论(0编辑  收藏  举报