#6069. 基因序列
基因序列
题目描述
在生物信息学研究中,研究员常需要比较两段基因序列的相似度。现有两段由核苷酸编号组成的序列 和 ,长度分别为 和 。序列中的每个元素都是一个 之间的整数。 在比对过程中,研究员会从序列 中选出一个子序列 ,再从序列 中选出一个子序列 。
如果子序列 与子序列 完全相同(即长度相同且对应位置的元素相等),则称其为一对“匹配子序列对”。
需要注意的是:
- 下标敏感:即使两个子序列所含的元素数值序列相同,只要选取的元素在原序列中的下标集合不同,就视为不同的子序列。
- 空序列:根据研究定义,从 和 中均不选取任何元素所构成的空序列对 ,也算作一对匹配子序列对。
- 子序列:从原序列中选择若干元素(可以不选),在不改变它们相对前后顺序的前提下,提取出来所组成的新序列。
请你编写程序,计算两段序列中共有多少对不同的“匹配子序列对”。由于答案可能很大,请输出对 取模后的结果。
输入格式
第一行包含两个整数 和 ,分别表示序列 和 的长度。
第二行包含 个整数,表示序列 的各个元素。
第三行包含 个整数,表示序列 的各个元素。
输出格式
输出一个整数,表示匹配子序列对的总数对 取模后的结果。
样例
2 2
1 3
3 1
3
2 2
1 1
1 1
6
数据范围
对于 的数据,满足 ,。