#Lutece2858. 字符串构造
字符串构造
Migrated from Lutece 2858 字符串构造
All parts of this problem, including description, images, samples, data and checker, might be broken. If you find bugs in this problem, please contact the admins.
Description
字符串 是字符串 的子序列当且仅当从 中删除若干字符后得到 ,例如 ace
是 abcde
的子序列,而 db
不是 abcde
的子序列。
字符串 是字符串 和 的公共子序列当且仅当 既是 的子序列,也是 的子序列,例如 bd
是 abcd
和 bedf
的公共子序列。
字符串 和 的最长公共子序列(LCS)即为 和 的公共子序列中长度最长的。
西西有两个字符串 和 ,长度分别为 和 。
西西忘记 和 是什么样的,不过他有一张按照 和 生成的 LCS 表。LCS 表有 行 列,其中第 行第 列保存 前 个字符和 前 个字符的 LCS 的长度。
给定 和 以及 LCS 表,你可以构造出满足条件的字符串 和 ,不过西西只想知道 和 最多包含多少种不同的字符。
Input
第一行输入一个整数 ,表示数据组数,每组数据格式如下:
- 第一行输入两个整数 和 ;
- 接下来 行,每行输出 个整数,表示给定的 LCS 表;
- 保证存在满足条件的字符串 和 。
Output
对于每组数据,输出占一行,输出 和 最多能包含多少种不同的字符。
Samples
1
5 5
0 1 1 1 1
0 1 1 2 2
0 1 2 2 2
0 1 2 3 3
1 1 2 3 4
4
Note
abcbd
和 dacbd
为一组合法的 和 且包含的字符种数最多。
Resources
The 19th UESTC Programming Contest Preliminary