4985:星际比赛
文件提交:无需freopen
内存限制:512 MB
时间限制:1.000 S
评测方式:普通裁判
金币值:
命题人:
提交:1
解决:0
题目描述
# 星际比赛
## 题目描述
在宇宙冒险者的星际比赛中,各路英雄们纷纷参与,期待着最后的荣耀。
由于他们来自不同的星系,对所有冒险者都不太了解,于是他们纷纷对一些他们熟悉的冒险者的实力进行了评估,即对部分冒险者做了相对排名的**预测**,并将这些预测传达给星际联盟。
比赛结束后,他们向星际联盟询问最后的比赛排名,但星际联盟的工作人员忘记了具体的排名,只记得哪些冒险者的预测是准确的,哪些是错误的。
他们希望知道比赛的排名**可能**是什么。
## 输入格式
第一行输入两个整数 $n,m$ 。 $n$ 表示参加比赛的冒险者数量, $m$ 表示参与预测成绩的冒险者的数量。冒险者编号从 $0$ 到 $n-1$ 。
接下来 $m$ 行,每行为一个参赛选手的相对排名预测。
每行第一个数 $c$ 表示他预测的冒险者人数,后面跟着 $c$ 个 $0 \sim n-1$ 的不同的数,表示他预测的冒险者相对排名,最后还有一个数, $0$ 表示这个预测是错误的, $1$ 表示这个预测是正确的。
## 输出格式
第一行输出一个整数 $r$ ,代表有多少种排名的可能。
下面 $r$ 行,每行输出一个 $0 \sim n-1$ 的排列,为某一个**可能**的排名,相邻的数间用空格隔开。
所有排名**按字典**序依次输出。
## 样例
### 样例输入 1
```text
3 2
2 0 1 1
2 1 2 0
```
### 样例输出 1
```text
2
0 2 1
2 0 1
```
### 样例输入 2
```text
3 2
2 0 1 1
2 2 1 0
```
### 样例输出 2
```text
1
0 1 2
```
### 样例输入 3
```text
9 8
3 1 2 3 1
4 1 5 2 6 0
3 3 5 8 0
4 2 7 6 5 0
5 1 8 4 5 2 0
2 4 2 0
2 8 1 0
3 3 2 1 0
```
### 样例输出 3
```text
18486
0 1 2 3 4 6 7 8 5
0 1 2 3 4 6 8 5 7
0 1 2 3 4 6 8 7 5
0 1 2 3 4 7 8 5 6
0 1 2 3 4 8 5 6 7
0 1 2 3 4 8 5 7 6
0 1 2 3 4 8 6 5 7
0 1 2 3 4 8 6 7 5
0 1 2 3 4 8 7 5 6
0 1 2 3 6 4 7 8 5
省略剩余的输出,剩余的输出需要同学自行计算……
```
## 说明/提示
样例 $1$ 解释
有 $3$ 名参加比赛的冒险者,他们的编号分别是 $0$ $1$ $2$ ,有 $2$ 名参与预测的冒险者。
第 $1$ 名冒险者预测结果为 $0$ $1$ ,即: $0$ 的排名在 $1$ 的前面,他的预测是正确的。
第 $2$ 名冒险者预测结果为 $1$ $2$ ,即: $1$ 的排名在 $2$ 的前面,他的预测是错误的。
$0$ $1$ $2$ 的所有可能的排名有 $6$ 种,结合预测对 $8$ 种可能的排名分别讨论如下:
- $0$ $1$ $2$ ,由于 $1$ 在 $2$ 的前面是错误的,因此该排名不可能。
- $0$ $2$ $1$ ,符合预测的结果。
- $1$ $0$ $2$ ,由于 $0$ 应当在 $1$ 的前面,因此该排名不可能。
- $1$ $2$ $0$ ,由于 $0$ 应当在 $1$ 的前面,因此该排名不可能。
- $2$ $0$ $1$ ,符合预测的结果。
- $2$ $1$ $0$ ,由于 $0$ 应当在 $1$ 的前面,因此该排名不可能。
综上,一共有 $2$ 个可能的排名,分别是: $0$ $2$ $1$ 和 $2$ $0$ $1$ 。
数据规模
对于 $100\%$ 的数据,满足 $1 \le n \le 10, 2 \le c \le n, 1 \le m \le 10$ 。
保证数据合法,**且答案中排名可能数不超过 $20000$** 。
补充说明
对于一个排名序列,一个预测是**正确**的,当且仅当预测的排名的相对顺序是排名序列的一个子序列。
一个预测是**错误**的,当且仅当这个预测只要有两个数的顺序不正确,这个预测就是不正确的。
可能的排列,必须符合所有正确的预测。某个排列只要符合一个错误的预测,该排列就不是可能的排列。
---
**题目来源:** 25年4月-B组(才俊)