这是一个美好的下午,小 W 和小 C 在竹林里切磋捆竹竿的技艺。
竹林里有无数根完全一样的短竹子,每一根竹子由
这些竹子比较特别,每一节都被染上了颜色。可能的颜色一共
小 W 和小 C 都是捆竹竿的高手,他们知道怎样才能把零散的短竹子捆成一整根长竹竿。初始时你拿着一根短竹子作为当前的竹竿。每次你可以选择一根短竹子,短竹子底端若干节(可以是
小 W 对竹竿的审美要求很高,他捆竹竿时有一个癖好:如果两根竹子的某两节被捆在了一起,那么它们的颜色必须相同。
我们假设一根短竹子从底端到顶端每节的颜色为 aba。
那么两根竹子可以首尾捆在一起,可以得到一根颜色为 abaaba 的竹竿;也可以将第一根顶端的一节 a 与第二根底端的一节 a 捆在一起,得到一根颜色为 ababa 的竹竿;还可以直接将每一节都对应起来,捆成一根颜色为 aba 的竹竿。
假设我们在颜色为 ababa 的竹竿顶端再捆一根竹子,则可以捆成 ababaaba,abababa 和 ababa 三种不同的情况。
但是小 C 在这个问题上有不同的看法,他认为小 W 捆不出很多种长度不同的竹竿。小 W 非常不服,于是他找到了你——现在请你求出在竹竿长度不超过
注意:如果
输入格式
第一行包含
每组数据的第一行包含
每组数据的第二行包含一个长度为
输出格式
输出共
样例一
input
1 4 11 bbab
output
5
explanation
可以捆成长度不超过
- bbab
- bbabbab
- bbabbbab
- bbabbabbab
- bbabbabbbab
- bbabbbabbab
后两种竹竿长度相同,因此不同长度的竹竿共有
样例二
input
2 44 1000 baaaaaabaabbaaabbbbabbbaaabbbababaaabaaabaaa 41 1000 abaabbabaaabaabbbbbbbbbbbababbbbaaabaabbb
output
195 24
样例三
见样例数据下载。
限制与约定
对于所有的测试数据,保证所有的字符串均由小写字母构成,保证
各测试点满足以下约定:
测试点编号 | 约束 | ||
---|---|---|---|
1 | |||
2 | |||
3 | 无 | ||
4 | |||
5 | |||
6 | |||
7 | |||
8 | |||
9 | |||
10 | |||
11 | |||
12 | |||
13 | |||
14 | |||
15 | |||
16 | |||
17 | |||
18 | |||
19 | |||
20 |
时间限制:
空间限制: