#ATabc130e. [ABC130E] Common Subsequence
[ABC130E] Common Subsequence
AT_abc130_e [ABC130E] Common Subsequence
题目描述
给定一个由 到 之间的整数构成的长度为 的整数列 和一个长度为 的整数列 。
请计算有多少对 的子序列和 的子序列,使得它们作为整数列是相等的。
这里,整数列 的子序列是指,从 中选择若干(可以为 个)元素删除,剩下的元素按照原顺序排列所得到的整数列。
另外,即使 和 的子序列作为整数列相等,只要删除的元素下标集合不同,也要将其视为不同的子序列。
由于答案可能非常大,请输出对 取模后的结果。
输入格式
输入以如下格式从标准输入给出。
输出格式
请输出作为整数列相等的 和 的子序列对的个数,对 取模后的结果。
样例 1
输入
2 2
1 3
3 1
输出
3
样例 2
输入
2 2
1 1
1 1
输出
6
样例 3
输入
4 4
3 4 5 6
3 4 5 6
输出
16
样例 4
输入
10 9
9 6 5 7 5 9 8 5 6 7
8 6 8 5 5 7 9 9 7
输出
191
样例 5
输入
20 20
1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
输出
846527861
说明/提示
限制条件
- 的长度为
- 的长度为
- 输入均为整数
样例解释 1
的子序列有 。 的子序列有 。两者都为 的组合有 种,都为 的组合有 种,都为 的组合有 种,因此共有 种组合。
样例解释 2
的子序列有 。 的子序列有 。两者都为 的组合有 种,都为 的组合有 种,都为 的组合有 种,因此共有 种组合。请注意,对于子序列,删除元素的下标集合不同的情况要区分开来。
样例解释 5
请注意输出时需要对 取模。
由 ChatGPT 4.1 翻译