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 提供。