#P7420. 「PMOI-2」拆分

    ID: 6425 Type: RemoteJudge 1000ms 64~256MiB Tried: 0 Accepted: 0 Difficulty: 5 Uploaded By: Tags>字符串动态规划,dpO2优化

「PMOI-2」拆分

题目背景

如果您不看样例解释中的提示,那么您极可能做不出来!

题目描述

lhm 手中有一个字符串 aa 和它的子串 bb,现你需要拆分字符串 aa

c(s,b)c(s,b) 表示从字符串 ss 中选出一些互不重叠的、与 bb 相同的子串的最大子串数量。

若将 aa 拆分为 kk 组,第 ii 组记为 pip_i,你需要保证:

  • k2k \geq 2
  • c(pi+1,b)>c(pi,b) (i[1,k1])c(p_{i+1},b)>c(p_i,b)\ (i \in[1,k-1])
  • c(p1,b)1c(p_1,b)\geq 1

两种拆分方案不同当且仅当拆分出的组数不等或 i\exist i,对应的 c(pi,b)c(p_i,b) 不等。

求不同的拆分方案总数,答案对 899678209899678209 取模。

输入格式

输入数据共两行。

第一行一个字符串 aa,含义如题所示。

第二行一个字符串 bb,含义如题所示。

输出格式

输出数据共一行。

一行一个整数,表示拆分的方案数对 899678209899678209 取模的结果。

noinoinonoinoiionoinoinoionoi
noi
10

提示

【样例解释】

拆分的方式分别为:

noi noinonoi noiionoinoinoionoi,个数分别为 1,2,51,2,5

noi noinonoin oiionoinoinoionoi,个数分别为 1,2,41,2,4

noino inonoinoiion oinoinoionoi,个数分别为 1,2,31,2,3

noi noinonoinoi ionoinoinoionoi,个数分别为 1,3,41,3,4

noi noinonoinoiionoinoinoionoi,个数分别为 1,71,7

noinoi nonoinoiionoinoinoionoi,个数分别为 2,62,6

noinoinonoi noiionoinoinoionoi,个数分别为 3,53,5

noin oinonoinoiionoinoinoionoi,个数分别为 1,61,6

noinoinono inoiionoinoinoionoi,个数分别为 2,52,5

noinoinonoin oiionoinoinoionoi,个数分别为 3,43,4

提示:样例解释足以说明可以拆分子串

【数据规模与约定】

请仔细阅读本栏。

本题采用捆绑测试。

n=c(a,b)n = c(a,b)a=l1|a|=l_1b=l2|b|=l_2

Subtask 特殊性质 空间限制 分值
1 l130l_1\leq 30 256MiB 9
2 n300n \le 300 11
3 n2000n \le 2000 17
4 n25000n \le 25000 37
5 64MiB 26

对于 100%100\% 的数据,0n2×1050\le n\le2\times10^52l2l11062\le l_2\le l_1\le10^6b1bl2b_1 \neq b_{l_2}aabb 只包含小写字母。