#L2642. 「TJOI2017」DNA

    ID: 5026 传统题 1000ms 256MiB 尝试: 1 已通过: 1 难度: 10 上传者: 标签>字符串后缀数据结构字符串匹配哈希滚动哈希字符串哈希近似匹配带通配符匹配编辑距离汉明距离序列比对生物信息学动态规划FFTNTT卷积后缀数组后缀自动机二分答案滑动窗口

「TJOI2017」DNA

题目描述

加里敦大学的生物研究所,发现了决定人喜不喜欢吃藕的基因序列 SS,有这个序列的碱基序列就会表现出喜欢吃藕的性状,但是研究人员发现对碱基序列 SS,任意修改其中不超过 33 个碱基,依然能够表现出吃藕的性状。现在研究人员想知道这个基因在 DNA 链 S0S_0 上的位置。所以你需要统计在一个表现出吃藕性状的人的 DNA 序列 S0S_0 上,有多少个连续子串可能是该基因,即有多少个 S0S_0 的连续子串修改小于等于三个字母能够变成 SS

输入格式

第一行有一个整数 TT,表示有几组数据。

每组数据第一行一个长度不超过 10510^5 的碱基序列 S0S_0

每组数据第二行一个长度不超过 10510^5 的吃藕基因序列 SS

输出格式

TT 行,第 ii 行表示第 ii 组数据中,在 S0S_0 中有多少个与 SS 等长的连续子串可能是表现吃藕性状的碱基序列。

样例

输入

1
ATCGCCCTA
CTTCA

输出

2

数据范围与提示

对于 20%20\% 的数据,S0,SS_0,S 的长度不超过 10410^4
对于 100%100\% 的数据,S0,SS_0,S 的长度不超过 10510^50<T100 < T \leq 10
注:DNA 碱基序列只有 ATCG 四种字符。