#C. [NOIP2015 提高组] 子串

    Type: RemoteJudge 1000ms 125MiB

[NOIP2015 提高组] 子串

You cannot submit for this problem because the contest is ended. You can click "Open in Problem Set" to view this problem in normal mode.

题目背景

NOIP2015 Day2T2

题目描述

有两个仅包含小写英文字母的字符串 AABB

现在要从字符串 AA 中取出 kk 个互不重叠的非空子串,然后把这 kk 个子串按照其在字符串 AA 中出现的顺序依次连接起来得到一个新的字符串。请问有多少种方案可以使得这个新串与字符串 BB 相等?

注意:子串取出的位置不同也认为是不同的方案。

输入格式

第一行是三个正整数 n,m,kn,m,k,分别表示字符串 AA 的长度,字符串 BB 的长度,以及问题描述中所提到的 kk,每两个整数之间用一个空格隔开。

第二行包含一个长度为 nn 的字符串,表示字符串 AA

第三行包含一个长度为 mm 的字符串,表示字符串 BB

输出格式

一个整数,表示所求方案数。

由于答案可能很大,所以这里要求输出答案对 10000000071000000007 取模的结果。

6 3 1 
aabaab 
aab
2
6 3 2 
aabaab 
aab
7
6 3 3 
aabaab 
aab
7

提示

样例解释

所有合法方案如下:(加下划线的部分表示取出的字串)

样例 1:aabaab,aabaab\texttt{\underline{aab}\,aab,aab\,\underline{aab}}
样例 2:$\texttt{\underline{a}\,\underline{ab}\,aab,\underline{a}\,aba\,\underline{ab},a\,\underline{a}\,ba\,\underline{ab},aab\,\underline{a}\,\underline{ab},\underline{aa}\,\underline{b}\,aab,\underline{aa}\,baa\,\underline{b},aab\,\underline{aa}\,\underline{b}}$。
样例 3:$\texttt{\underline{a}\,\underline{a}\,\underline{b}\,aab,\underline{a}\,\underline{a}\,baa\,\underline{b},\underline{a}\,ab\,\underline{a}\,a\,\underline{b},\underline{a}\,aba\,\underline{a}\,\underline{b},a\,\underline{a}\,b\,\underline{a}\,a\,\underline{b},a\,\underline{a}\,ba\,\underline{a}\,\underline{b},aab\,\underline{a}\,\underline{a}\,\underline{b}}$。

数据范围

对于第 1 组数据:1n500,1m50,k=11≤n≤500,1≤m≤50,k=1;
对于第 2 组至第 3 组数据:1n500,1m50,k=21≤n≤500,1≤m≤50,k=2;
对于第 4 组至第 5 组数据:1n500,1m50,k=m1≤n≤500,1≤m≤50,k=m;
对于第 1 组至第 7 组数据:1n500,1m50,1km1≤n≤500,1≤m≤50,1≤k≤m;
对于第 1 组至第 9 组数据:1n1000,1m100,1km1≤n≤1000,1≤m≤100,1≤k≤m;
对于所有 10 组数据:1n1000,1m200,1km1≤n≤1000,1≤m≤200,1≤k≤m

天河c线性dp时空优化

Not Attended
Status
Done
Rule
IOI
Problem
3
Start at
2025-3-30 18:57
End at
2025-3-30 21:27
Duration
2.5 hour(s)
Host
Partic.
12