「PMOI-2」拆分
题目背景
### 如果您不看样例解释中的提示,那么您极可能做不出来!
![](https://cdn.luogu.com.cn/upload/image_hosting/n87yncfw.png)
题目描述
lhm 手中有一个字符串 $a$ 和它的子串 $b$,现你需要拆分字符串 $a$。
设 $c(s,b)$ 表示从字符串 $s$ 中选出一些互不重叠的、与 $b$ 相同的子串的最大子串数量。
若将 $a$ 拆分为 $k$ 组,第 $i$ 组记为 $p_i$,你需要保证:
- $k \geq 2$,
- $c(p_{i+1},b)>c(p_i,b)\ (i \in[1,k-1])$,
- $c(p_1,b)\geq 1$。
两种拆分方案不同当且仅当拆分出的组数不等或 $\exist i$,对应的 $c(p_i,b)$ 不等。
求不同的拆分方案总数,答案对 $899678209$ 取模。
输入输出格式
输入格式
输入数据共两行。
第一行一个字符串 $a$,含义如题所示。
第二行一个字符串 $b$,含义如题所示。
输出格式
输出数据共一行。
一行一个整数,表示拆分的方案数对 $899678209$ 取模的结果。
输入输出样例
输入样例 #1
noinoinonoinoiionoinoinoionoi
noi
输出样例 #1
10
说明
【样例解释】
拆分的方式分别为:
`noi noinonoi noiionoinoinoionoi`,个数分别为 $1,2,5$。
`noi noinonoin oiionoinoinoionoi`,个数分别为 $1,2,4$。
`noino inonoinoiion oinoinoionoi`,个数分别为 $1,2,3$。
`noi noinonoinoi ionoinoinoionoi`,个数分别为 $1,3,4$。
`noi noinonoinoiionoinoinoionoi`,个数分别为 $1,7$。
`noinoi nonoinoiionoinoinoionoi`,个数分别为 $2,6$。
`noinoinonoi noiionoinoinoionoi`,个数分别为 $3,5$。
`noin oinonoinoiionoinoinoionoi`,个数分别为 $1,6$。
`noinoinono inoiionoinoinoionoi`,个数分别为 $2,5$。
`noinoinonoin oiionoinoinoionoi`,个数分别为 $3,4$。
**提示:样例解释足以说明可以拆分子串**。
【数据规模与约定】
请仔细阅读本栏。
**本题采用捆绑测试。**
设 $n = c(a,b)$,$|a|=l_1$,$|b|=l_2$。
| Subtask | 特殊性质 | 空间限制 | 分值 |
| :----------: | :----------: | :----------: | :----------: |
| 1 | $l_1\leq 30$ | 256MiB | 9 |
| 2 | $n \le 300$ | 256MiB | 11 |
| 3 | $n \le 2000$ | 256MiB | 17 |
| 4 | $n \le 25000$ | 256MiB | 37 |
| 5 | 无 | 64MiB | 26 |
对于 $100\%$ 的数据,$0\le n\le2\times10^5$,$2\le l_2\le l_1\le10^6$,$b_1 \neq b_{l_2}$,$a$ 和 $b$ 只包含小写字母。