F. 公共子序列

    传统题 1000ms 256MiB

公共子序列

该比赛已结束,您无法在比赛模式下递交该题目。您可以点击“在题库中打开”以普通模式查看和递交本题。

E - 公共子序列

分数:500分

问题描述

给定两个整数序列SSTT,长度分别为NNMM,均由1110510^5(含)之间的整数组成。 有多少对SS的子序列和TT的子序列在内容上是相同的? 这里,AA的子序列是指通过从AA中移除零个或多个元素,并按原顺序连接剩余元素得到的序列。 对于SSTT,如果被移除元素的索引集合不同,即使子序列内容相同,我们也视为不同的子序列。 由于答案可能非常大,请将结果对109+710^9+7取模后输出。

约束条件

  • 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
  • 输入中的所有值均为整数。

输入

输入从标准输入按以下格式给出:

N M S_1 S_2 ... S_{N-1} S_N T_1 T_2 ... T_{M-1} T_M

输出

输出满足条件的子序列对的数量,即SS的子序列和TT的子序列在内容上相同的对数,结果对109+710^9+7取模。

样例输入1

2 2

1 3

3 1

样例输出1

3

SS有四个子序列:()()(1)(1)(3)(3)(1,3)(1, 3)TT有四个子序列:()()(3)(3)(1)(1)(3,1)(3, 1)。 有1×11 \times 1对子序列均为()()1×11 \times 1对子序列均为(1)(1)1×11 \times 1对子序列均为(3)(3),总计三对。

样例输入2

2 2

1 1

1 1

样例输出2

6

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),总计六对。

再次注意,如果被移除元素的索引集合不同,即使子序列内容相同,我们也视为不同的子序列。

样例输入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

请确保输出结果对109+710^9+7取模。

2025七月DAY10

未参加
状态
已结束
规则
OI
题目
6
开始于
2025-7-24 9:00
结束于
2025-7-24 12:00
持续时间
3 小时
主持人
参赛人数
8