luogu#P9224. 「PEOI Rd1」k 叉堆(heap)

「PEOI Rd1」k 叉堆(heap)

题目背景

数据范围较赛时加强

  • 2023.04.25:发现 1.50s 时限过于卡常,扩大到 2.00s。

题目描述

给定一个 1n1 \sim n 的序列,每个位置 iikk 个参数 ai,1,ai,2,,ai,ka_{i,1},a_{i,2},\dots,a_{i,k}。已知这个序列是一个按照大根堆的 bfs 序得到的序列。

bfs 序,即按照下图中红色数字编号的顺序

一个大根堆满足条件,当且仅当所有子节点的所有 kk 个权值都小于等于父节点,即 $\forall u\in[1,n],\forall v\in son(u),\forall j \in [1,k],a_{v,j} \leq a_{u,j}$。

假设这个大根堆是完全 mm 叉树,求所有 m[1,n1]m \in [1,n-1],使得这个 mm 叉堆满足条件mm 的取值。

输入格式

第一行两个整数 n,kn,k

接下来 kk 行,每行 nn 个整数,表示给定的序列。其中,第 i+1i+1 行第 jj 列表示的是 aj,ia_{j,i}

可以理解为,分成 kk 行给出了所有位置的 kk 个参数。

输出格式

第一行一个整数 AA,表示所有可能的 mm 的取值数量。

接下来一行 AA 个整数,表示所有的可能的 mm 的取值。

3 2
1 1 1
1 1 1
2
1 2
6 1
2 1 2 1 1 2
2
2 5

提示

样例解释

样例 11 中,1,21,2 叉堆显然都符合条件。


数据范围

子任务编号 nn \leq 分值
11 10310^3 2020
22 5×1045 \times 10^4
33 2×1052 \times 10^5 6060

对于 100%100\% 的数据,保证 1n2×1051 \leq n \leq 2 \times 10^51k81 \leq k \leq 8107ai,j107-10^7 \leq a_{i,j} \leq 10^7