问题 B: [NOIP2015 提高组] 子串

传统题
1.000s 时间限制
128MB 内存限制
16 提交
2 解决

【题目描述】
## 题目描述
 
有两个仅包含小写英文字母的字符串 A B
 
现在要从字符串 A 中取出 k 个互不重叠的非空子串,然后把这 k 个子串按照其在字符串 A 中出现的顺序依次连接起来得到一个新的字符串。请问有多少种方案可以使得这个新串与字符串 B 相等?
 
注意:子串取出的位置不同也认为是不同的方案。
 
## 输入格式
 
第一行是三个正整数 n,m,k,分别表示字符串 A 的长度,字符串 B 的长度,以及问题描述中所提到的 k,每两个整数之间用一个空格隔开。
 
第二行包含一个长度为 n 的字符串,表示字符串 A
 
第三行包含一个长度为 m 的字符串,表示字符串 B
 
## 输出格式
 
一个整数,表示所求方案数。
 
由于答案可能很大,所以这里要求输出答案对 1000000007 取模的结果。
 
## 样例 #1
 
### 样例输入 #1
 
6 3 1
aabaab
aab
 
### 样例输出 #1
 
2
 
## 样例 #2
 
### 样例输入 #2
 
6 3 2
aabaab
aab
 
### 样例输出 #2
 
7
 
## 样例 #3
 
### 样例输入 #3
 
6 3 3
aabaab
aab
 
### 样例输出 #3
 
7
 
## 提示
 

 
对于第 1 组数据:1n500,1m50,k=1;  
对于第 2 组至第 3 组数据:1n500,1m50,k=2;   
对于第 4 组至第 5 组数据:1n500,1m50,k=m;   
对于第 1 组至第 7 组数据:1n500,1m50,1km;  
对于第 1 组至第 9 组数据:1n1000,1m100,1km;   
对于所有 10 组数据:1n1000,1m200,1km

题目类型~

NOIP-2015