#L6401. 与字符串

与字符串

题目描述

有一个只包含小写字母,长度为 n 的字符串 S 。有一些字母是好的,剩下的是坏的。

定义一个子串 S_{l\ldots r}是好的,当且仅当这个子串包含不超过 k 个坏的字母。

求有多少个不同的满足以下要求的字符串 T :

T 作为 S 的子串出现过。 存在一个 T 出现的位置 [l,r] ,满足 S_{l\ldots r} 是好的。

输入格式

第一行有一个字符串 S 。

第二行有一个字符串 B 。若 B_i='1' 则表示 S_i 是好的,否则表示 S_i 是坏的。

第三行有一个整数 k 。

输出格式

一个整数:答案。

样例

样例一

ababab
010101
1
5

explanation 所有'b'是好的,'a'是坏的。

满足条件的字符串有:"a","ab","b","ba","bab"。

样例二

ababab
100000
1
3

explanation S_1 是好的,其他的字符都是坏的。

满足条件的字符串有:"a","ab","b"。

虽然 S_{3\ldots4}=S_{5\ldots6}="ab" 是坏的,但是这并不影响 "ab" 满足条件,因为 S_{1\ldots2}="ab" 是好的。

数据范围与提示

子任务 1(10 分):n\leq 10。

子任务 2(10 分):n\leq 100。

子任务 3(10 分):n\leq 1000。

子任务 4(10 分):n\leq 100000,k=n。

子任务 5(10 分):n\leq 100000,k=0。

子任务 6(20 分):n\leq 100000,若S_i=S_j,则B_i=B_j。

子任务 7(30 分):n\leq 100000。

对于 100% 的数据:1\leq n\leq 10^5,0\leq k\leq 10^5, S 只包含小写字母。

题目来源:全是水题的GDOI模拟赛 by yww