#2827. Common Subsequence

0

Common Subsequence

Common Subsequence

题目描述

给你两个整数序列 SS 和 TT,长度分别为 NN 和 MM,两者的元素均为 11 到 10510^5(包含端点)之间的整数。 有多少对由 SS 的一个子序列与 TT 的一个子序列组成的配对,使得这两个子序列在内容上相同? 这里,AA 的子序列是通过从 AA 中删除零个或多个元素并在不改变相对顺序的情况下将剩余元素连接起来得到的序列。 对于 SS 和 TT 的子序列,如果被删除元素的索引集合不同,即使子序列的内容相同,我们也将其视为不同的子序列。 由于答案可能非常大,请输出答案对 109+710^9+7 取模的结果。

输入格式

输入按下列格式从标准输入给出: NN MM S1S_1 S2S_2 ...... SN−1S_{N-1} SNS_{N} T1T_1 T2T_2 ...... TM−1T_{M-1} TMT_{M}

输出格式

打印满足子序列在内容上相同的 SS 的一个子序列和 TT 的一个子序列的配对数量,对 109+710^9+7 取模。

2 2
1 3
3 1
3
2 2
1 1
1 1
6
4 4
3 4 5 6
3 4 5 6
16
10 9
9 6 5 7 5 9 8 5 6 7
8 6 8 5 5 7 9 9 7
191
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≤N,M≤2×1031 \leq N, M \leq 2 \times 10^3 序列 SS 的长度为 NN。 序列 TT 的长度为 MM。
1≤Si,Ti≤1051 \leq S_i, T_i \leq 10^5 输入中的所有数值均为整数。SS 有四个子序列: (),(1),(3),(1,3)(), (1), (3), (1, 3)。 TT 有四个子序列: (),(3),(1),(3,1)(), (3), (1), (3, 1)。 存在 1×11 \times 1 对子序列两者均为 ()() 的配对,1×11 \times 1 对两者均为 (1)(1) 的配对,以及 1×11 \times 1 对两者均为 (3)(3) 的配对,总计三对。
SS 有四个子序列: (),(1),(1),(1,1)(), (1), (1), (1, 1)。 TT 有四个子序列: (),(1),(1),(1,1)(), (1), (1), (1, 1)。 存在 1×11 \times 1 对子序列两者均为 ()() 的配对,2×22 \times 2 对两者均为 (1)(1) 的配对,以及 1×11 \times 1 对两者均为 (1,1)(1,1) 的配对,总计六对。 再次注意,如果被删除元素的索引集合不同,即使子序列内容相同,我们也将其视为不同的子序列。
请务必对 109+710^9+7 取模后输出答案。

标签: AtCoder|abc130E

来源

AtCoder|abc130E