题库练习 [ABC130E] Common Subsequence
← 上一题 下一题 →

A7650 | [ABC130E] Common Subsequence

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

题目描述

给定一个由 $1$ 到 $10^5$ 之间的整数构成的长度为 $N$ 的整数列 $S$ 和一个长度为 $M$ 的整数列 $T$。

请计算有多少对 $S$ 的子序列和 $T$ 的子序列,使得它们作为整数列是相等的。

这里,整数列 $A$ 的子序列是指,从 $A$ 中选择若干(可以为 $0$ 个)元素删除,剩下的元素按照原顺序排列所得到的整数列。

另外,即使 $S$ 和 $T$ 的子序列作为整数列相等,只要删除的元素下标集合不同,也要将其视为不同的子序列。

由于答案可能非常大,请输出对 $10^9+7$ 取模后的结果。

输入格式

输入以如下格式从标准输入给出。

> $N$ $M$ $S_1$ $S_2$ $\ldots$ $S_{N}$ $T_1$ $T_2$ $\ldots$ $T_{M}$

输出格式

请输出作为整数列相等的 $S$ 和 $T$ 的子序列对的个数,对 $10^9+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
C++ 编辑器
输入
输出