「PEOI Rd1」k 叉堆(heap)
题目背景
**数据范围较赛时加强**。
- 2023.04.25:发现 1.50s 时限过于卡常,扩大到 2.00s。
题目描述
给定一个 $1 \sim n$ 的序列,每个位置 $i$ 有 $k$ 个参数 $a_{i,1},a_{i,2},\dots,a_{i,k}$。已知这个序列是一个按照大根堆的 bfs 序得到的序列。
bfs 序,即按照下图中**红色数字编号的顺序**:
![](https://cdn.luogu.com.cn/upload/image_hosting/73ot5iox.png)
一个大根堆满足条件,当且仅当所有子节点的**所有** $k$ 个权值都小于等于父节点,即 $\forall u\in[1,n],\forall v\in son(u),\forall j \in [1,k],a_{v,j} \leq a_{u,j}$。
假设这个大根堆是**完全 $m$ 叉树**,求所有 $m \in [1,n-1]$,使得这个 $m$ 叉堆**满足条件**的 $m$ 的取值。
输入输出格式
输入格式
第一行两个整数 $n,k$。
接下来 $k$ 行,每行 $n$ 个整数,表示给定的序列。其中,第 $i+1$ 行第 $j$ 列表示的是 $a_{j,i}$。
可以理解为,分成 $k$ 行给出了所有位置的 $k$ 个参数。
输出格式
第一行一个整数 $A$,表示所有可能的 $m$ 的取值数量。
接下来一行 $A$ 个整数,表示所有的可能的 $m$ 的取值。
输入输出样例
输入样例 #1
3 2
1 1 1
1 1 1
输出样例 #1
2
1 2
输入样例 #2
6 1
2 1 2 1 1 2
输出样例 #2
2
2 5
说明
#### 样例解释
样例 $1$ 中,$1,2$ 叉堆显然都符合条件。
---
#### 数据范围
|子任务编号|$n \leq$|分值|
|:-:|:-:|:-:|
|$1$|$10^3$|$20$|
|$2$|$5 \times 10^4$|$20$|
|$3$|$2 \times 10^5$|$60$|
对于 $100\%$ 的数据,保证 $1 \leq n \leq 2 \times 10^5$,$1 \leq k \leq 8$,$-10^7 \leq a_{i,j} \leq 10^7$。