P3513 [POI 2011] KON-Conspiracy

题目描述

敌对的 Bitotia 发动了一次对 Byteotia 的突袭,并占领了其大部分领土。 Byteotia 的国王 Byteasar 打算在被占领地区组织抵抗运动。 Byteasar 自然地从选择将组成运动骨干的人开始。 他们将被分为两组: 阴谋者将在被占领的领土上直接行动,而支援小组将在自由的 Byteotia 内部运作。 然而,有一个问题——分组必须满足以下条件: 支援小组中的每一对人必须彼此认识——这将使整个小组合作高效。 阴谋者之间不能相互认识。 没有一个小组可以为空,即必须至少有一个阴谋者和至少一个支援小组成员。 Byteasar 想知道有多少种方法可以将选定的人分成这两组。 最重要的是,这样的分组是否可能。 由于他完全不知道如何解决这个问题,他向你求助。

输入格式

标准输入的第一行包含一个整数 $n$($2 \le n \le 5000$),表示参与抵抗运动的人数。 这些人被编号为 1 到 $n$(为了保密!)。 接下来的 $n$ 行描述了小组中谁认识谁。 第 $i$ 行描述了第 $i$ 个人的熟人,以用空格分隔的整数序列表示。 这些数字中的第一个,$k_i$($0 \le k_i \le n-1$),表示第 $i$ 个人的熟人数。 接下来是 $k_i$ 个整数 $a_{i,1},a_{i,2},\cdots,a_{i,k_i}$——$i$ 的熟人的编号。数字 $a_{i,j}$ 按递增顺序给出,并满足 $1 \le a_{i,j} \le n$,$a_{i,j} \neq i$。可以假设如果 $x$ 出现在序列 $a_i$ 中(即在 $i$ 的熟人中),那么 $i$ 也出现在序列 $a_x$ 中(即在 $x$ 的熟人中)。

输出格式

在标准输出的第一行,你的程序应输出一个整数: 将选定的人分为阴谋者和支援小组的方法数。 如果没有满足上述条件的分组,那么显然 $0$ 是正确答案。

说明/提示

题面翻译由 ChatGPT-4o 提供。