CF1268D Invertation in Tournament

题目描述

给定一个锦标赛图——即一个完全有向图。 每次操作,你可以选择任意一个顶点 $v$,并将所有与 $v$ 相连的边的方向全部反转(即所有 $u \to v$ 的边变为 $v \to u$,所有 $v \to u$ 的边变为 $u \to v$)。 你需要用最少的操作次数使得该锦标赛图变为强连通图(如果可能的话)。 如果可以做到,还需要计算有多少种不同的方式可以用最少的操作次数使图变为强连通图(如果对于某一次操作,选择的顶点不同,则认为两种方式不同)。只需输出该数量对 $998\,244\,353$ 取模的结果。

输入格式

输入的第一行包含一个整数 $n$($3 \leq n \leq 2000$),表示锦标赛图的顶点数。 接下来的 $n$ 行,每行包含一个长度为 $n$ 的二进制字符串,描述给定的锦标赛图。如果第 $i$ 行第 $j$ 个字符为 '1',则表示存在一条边 $i \to j$。 保证不存在自环(即不存在 $i \to i$),并且对于任意 $i \neq j$,$i \to j$ 和 $j \to i$ 中恰好有一条边。

输出格式

如果无法通过上述操作将锦标赛图变为强连通图,输出 "-1"。 否则,输出两个整数,分别表示将图变为强连通图所需的最少操作次数,以及用最少操作次数实现的方案数,对 $998\,244\,353$ 取模。

说明/提示

由 ChatGPT 4.1 翻译