AT_abc130_e.[ABC130E] Common Subsequence
普及+/提高
通过率:0%
AC君温馨提醒
该题目为【atcoder】题库的题目,您提交的代码将被提交至atcoder进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。
题目描述
给定一个由 1 到 105 之间的整数构成的长度为 N 的整数列 S 和一个长度为 M 的整数列 T。
请计算有多少对 S 的子序列和 T 的子序列,使得它们作为整数列是相等的。
这里,整数列 A 的子序列是指,从 A 中选择若干(可以为 0 个)元素删除,剩下的元素按照原顺序排列所得到的整数列。
另外,即使 S 和 T 的子序列作为整数列相等,只要删除的元素下标集合不同,也要将其视为不同的子序列。
由于答案可能非常大,请输出对 109+7 取模后的结果。
输入格式
输入以如下格式从标准输入给出。
N M S1 S2 … SN T1 T2 … TM
输出格式
请输出作为整数列相等的 S 和 T 的子序列对的个数,对 109+7 取模后的结果。
输入输出样例
输入#1
2 2 1 3 3 1
输出#1
3
输入#2
2 2 1 1 1 1
输出#2
6
输入#3
4 4 3 4 5 6 3 4 5 6
输出#3
16
输入#4
10 9 9 6 5 7 5 9 8 5 6 7 8 6 8 5 5 7 9 9 7
输出#4
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
输出#5
846527861
说明/提示
限制条件
- 1≤N,M≤2×103
- S 的长度为 N
- T 的长度为 M
- 1≤Si,Ti≤105
- 输入均为整数
样例解释 1
S 的子序列有 (), (1), (3), (1,3)。T 的子序列有 (), (3), (1), (3,1)。两者都为 () 的组合有 1×1 种,都为 (1) 的组合有 1×1 种,都为 (3) 的组合有 1×1 种,因此共有 3 种组合。
样例解释 2
S 的子序列有 (), (1), (1), (1,1)。T 的子序列有 (), (1), (1), (1,1)。两者都为 () 的组合有 1×1 种,都为 (1) 的组合有 2×2 种,都为 (1,1) 的组合有 1×1 种,因此共有 6 种组合。请注意,对于子序列,删除元素的下标集合不同的情况要区分开来。
样例解释 5
请注意输出时需要对 109+7 取模。