题单练习 双序列型DP入门

A6970 | 排列的最长公共子序列

时间限制1s
内存限制128MB
通过 / 提交0/0

题目描述

给定 $K$ 个长度为 $N$ 的排列。
每个排列都包含 $1$ 到 $N$ 的所有整数,只是顺序不同。

请你求出一个最长的序列,使得这个序列是这 $K$ 个排列中每一个排列的子序列。
输出这个最长公共子序列的长度。

子序列的定义
从原序列中删除若干个(也可以是 0 个)元素,剩下的元素保持原有相对顺序组成的序列。

输入格式

第一行包含两个整数 $N$ 和 $K$,分别表示排列的长度和排列的个数。

接下来 $K$ 行,每行包含 $N$ 个整数,表示一个 $1$ 到 $N$ 的排列。

输出格式

输出一个整数,表示最长公共子序列的长度。

输入输出样例

输入 #1
4 3
1 4 2 3
4 1 2 3
1 2 4 3
输出 #1
3
C++ 编辑器
输入
输出