#P10376. 排列
排列
题目背景
小 L 喜欢排列,他平日里喜欢研究排列的各种性质。
这天,小 L 在研究排列中的单调子序列时,遇到了一个问题。
题目描述
定义 为最小的正整数 使得长度为 的所有排列都可以划分为 个单调子序列且排列中每个数都恰好属于一个子序列。小 L 现在有一个长度为 的排列 ,他想让你把它划分为 个单调子序列,使得 。
单调子序列定义为原序列的上升子序列或下降子序列。
输入格式
第一行一个正整数 。
接下来一行 个正整数,表示排列 。
输出格式
第一行一个正整数 ,表示你划分的单调子序列个数。注意:你并不需要最小化单调子序列个数,只需保证 。
接下来 行,每行第一个数为 ,表示你划分出的该子序列的长度,随后有 个正整数,第 个数为 ,描述该子序列。
样例1输入
4
4 3 1 2
样例1输出
2
3 4 3 1
1 2
样例2输入
6
4 5 6 1 3 2
样例2输出
3
2 4 1
2 5 6
2 3 2
样例3输入
10
1 2 3 4 5 6 7 8 9 10
样例3输出
1
10 1 2 3 4 5 6 7 8 9 10
数据范围和提示
子任务编号 | 特殊性质 | 子任务依赖 | 分值 | |
---|---|---|---|---|
1 | 16 | |||
2 | 1 | 22 | ||
3 | 或 | 2 | ||
4 | 保证排列 LIS 长度 | 13 | ||
5 | 2,3,4 | 47 |
对于所有的数据,有 ,保证 是一个 到 的排列。