AT_abc130_e.[ABC130E] Common Subsequence

普及+/提高

通过率:0%

AC君温馨提醒

该题目为【atcoder】题库的题目,您提交的代码将被提交至atcoder进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。

题目描述

给定一个由 1110510^5 之间的整数构成的长度为 NN 的整数列 SS 和一个长度为 MM 的整数列 TT

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

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

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

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

输入格式

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

NN MM S1S_1 S2S_2 \ldots SNS_{N} T1T_1 T2T_2 \ldots TMT_{M}

输出格式

请输出作为整数列相等的 SSTT 的子序列对的个数,对 109+710^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

说明/提示

限制条件

  • 1N,M2×1031 \leq N, M \leq 2 \times 10^3
  • SS 的长度为 NN
  • TT 的长度为 MM
  • 1Si,Ti1051 \leq S_i, T_i \leq 10^5
  • 输入均为整数

样例解释 1

SS 的子序列有 (), (1), (3), (1,3)(),\ (1),\ (3),\ (1, 3)TT 的子序列有 (), (3), (1), (3,1)(),\ (3),\ (1),\ (3, 1)。两者都为 ()() 的组合有 1×11 \times 1 种,都为 (1)(1) 的组合有 1×11 \times 1 种,都为 (3)(3) 的组合有 1×11 \times 1 种,因此共有 33 种组合。

样例解释 2

SS 的子序列有 (), (1), (1), (1,1)(),\ (1),\ (1),\ (1, 1)TT 的子序列有 (), (1), (1), (1,1)(),\ (1),\ (1),\ (1, 1)。两者都为 ()() 的组合有 1×11 \times 1 种,都为 (1)(1) 的组合有 2×22 \times 2 种,都为 (1,1)(1, 1) 的组合有 1×11 \times 1 种,因此共有 66 种组合。请注意,对于子序列,删除元素的下标集合不同的情况要区分开来。

样例解释 5

请注意输出时需要对 109+710^9+7 取模。

首页