P12453 [INOI Team Selection 2021] Lisdeque

题目描述

乌龟大师有 $n$ 个双端队列,这些队列中的所有元素都是互不相同的。 熊猫想要成为神龙大侠,需要利用这些双端队列构造出最强大的数组。 在每一轮操作中,他可以选择一个非空的双端队列(如果存在的话),然后选择其队首或队尾元素,将该元素添加到数组的末尾,并从双端队列中移除该元素。请帮助他找出能够构造出的最强大数组。 一个数组的强大程度由其最长递增子序列(LIS)的长度决定。

输入格式

输入的第一行包含一个整数 $n$,表示乌龟大师拥有的双端队列数量。 接下来的 $n$ 行中,第 $i$ 行首先是一个整数 $k_i$,表示第 $i$ 个双端队列的大小,随后是 $k_i$ 个整数,表示该双端队列中的元素。

输出格式

输出的第一行应打印能够获得的最大 LIS 长度,第二行打印构造出的数组。如果存在多个可能的解,可以输出其中任意一个。

说明/提示

### 数据范围 - $1 \leq n \leq 200\,000$ - $1 \leq k_i \leq 200\,000$ - $\sum_{i=1}^{n} k_i \leq 200\,000$ - 保证所有元素互不相同,即 $a_{i_1,j_1} \neq a_{i_2,j_2}$ - $a_{i,j} \leq 10^9$ ### 子任务 | 子任务 | 分值 | 限制条件 | | :---: | :---: | :---: | | 1 | 50 | $\sum_{i=1}^{n} k_{i} \leq 2000$ | | 2 | 50 | 无额外限制 | 翻译由 DeepSeek V3 完成