P15645 [ICPC 2022 Tehran R] Network Topology in Hezardastan

题目描述

Hezardastan 是伊朗一家领先的信息技术集团,拥有一个包含 $n$ 台服务器和 $m$ 个终端(其中 $m \leqslant n$)的大型数据中心。终端是一对键盘和显示器,可以连接到服务器进行管理。服务器编号为 $1$ 到 $n$,终端编号为 $1$ 到 $m$。该数据中心具有一种网络拓扑结构,其中并非每个终端都必然能够连接到每台服务器。例如,下图描绘了 $3$ 个终端和 $6$ 台服务器,如果它们之间画有连线,则终端可以连接到服务器。 :::align{center} ![](https://cdn.luogu.com.cn/upload/image_hosting/hs1i96or.png) ::: 一个大小为 $m$ 的服务器子集 $S$ 被称为**可管理的**,如果网络拓扑允许其成员被终端同时管理,即每个终端可以连接到 $S$ 中一台不同的服务器。例如,上例中的子集 $\{2,3,6\}$ 是可管理的,因为其成员可以分别被终端 $\{1,2,3\}$ 管理。一个服务器子集被称为**不可管理的**,如果它的大小为 $m$ 且不可管理。当网络拓扑不导致任何不可管理的服务器子集时,该拓扑被称为**完全可管理的**。例如,上例所示的网络拓扑是完全可管理的,但如果移除终端 $2$ 与服务器 $5$ 之间的连接链路,则它将不再是完全可管理的,因为子集 $\{1,5,6\}$、$\{2,5,6\}$、$\{3,5,6\}$ 和 $\{4,5,6\}$ 将变得不可管理。给定数据中心的网络拓扑,你需要判断它是否完全可管理,或者它是否导致一个不可管理的子集。

输入格式

输入的第一行包含两个整数 m 和 n,用单个空格分隔($1 \leqslant m \leqslant 150$,$1 \leqslant n \leqslant 400$,$m\leqslant n$)。接下来的 $m$ 行通过一个 $m\times n$ 矩阵描述网络拓扑。这些行中的每一行包含 $n$ 个空格分隔的整数,这些整数是 $0$ 或 $1$。输入的第 $(1+i)$ 行(对于 $1 \leqslant i \leqslant m$)中的第 $j$ 个数(对于 $1 \leqslant j \leqslant n$)为 $1$,表示终端 $i$ 可以连接到服务器 $j$;否则为 $0$。

输出格式

如果给定的网络拓扑是完全可管理的,你只需在输出的第一行打印 $1$。否则,你应在输出的第一行打印 $0$,并在第二行以 $m$ 个空格分隔的整数的形式(表示服务器编号,可以按任意顺序)打印一个不可管理的服务器子集。如果有多个不可管理的子集,你可以打印其中任意一个。