#1742. 图书馆的古籍密钥
图书馆的古籍密钥
题目描述:
周末的市图书馆里,初中生小宇正对着一排落满薄尘的古籍书架发愁。上周他在古籍阅览室帮忙整理时,发现最顶层藏着一个带锁的木盒,盒身刻着 “复赛备考秘籍” 几个字 —— 据说里面装着往届信息学竞赛的珍贵真题解析,可锁孔旁贴着一张泛黄的纸条,上面写着:“密钥藏于卷中,寻得最长同序,方见解锁之数”。
为了找到密钥,小宇按照纸条提示,从书架上取来 N 册编号特殊的古籍。每册古籍的目录页都有 M 个数字,这些数字恰好是 1 到 M 的一个排列,像是某种加密的索引。更特别的是,每册古籍对应位置的数字能连成一列 —— 比如第一册的第 3 个数字、第二册的第 3 个数字…… 第 N 册的第 3 个数字,就能组成 “第 3 列”。
正当小宇对着满页数字犯难时,他突然想起纸条背面的补充说明:密钥其实就是这 M 列中的某一列序号,而这个序号,恰好等于这 N 册古籍目录数字的 “最长上升公共子序列” 的长度。只要算出这个长度,就能找到对应的列,拿到打开木盒的密钥。
小宇盯着桌上摊开的古籍目录,手里的铅笔在草稿纸上不停演算。同学们,你能帮他算出这个解锁的密钥吗?
输入格式:
第一行 2 个空格隔开的正整数 N 和 M,分别代表古籍的册数和每册目录的数字个数。
接下来 N 行,每行有 M 个数字,保证这 M 个数字是 1~M 的一个排列(即每册目录的数字无重复、不遗漏)。
输出格式:
一个正整数,表示解锁木盒的密钥(即最长上升公共子序列的长度)。
样例:
2 7
1 2 3 5 7 6 4
1 7 2 6 3 4 5
4
提示
对于 100% 的数据,有 N≤100,M≤200; 【说明:】在该样例中,1 2 3 4 和 1 2 3 5 均为符合要求的最长上升公共子序列,因此长度为 4。
相关
在下列比赛中: