#P1056. 包含序列

包含序列

题目描述

给定一个字符串 SS 和一个字符串 TT,你可以从 SS 中删除一段头或者一段尾。

特别的,你可以选择仅删除头,或者仅删除尾,或者头尾都删除,或者头尾都不删除。

请问你有多少种删法可以使得剩余的子串 XX 包含 TT 的所有字符,并且保证 TTXX 的一个子序列。

输入格式

给定两行字符串,第一行是字符串 SS,第二行是字符串 TT

输出格式

输出一个数字,表示答案。

abctdefg
tfg
4
abcbcd
bcd
4

说明/提示

样例解释 #1

对于字符串abctdefg,有如下删头去尾的子串包含tfg的所有字符,并且tfg是其子序列:abctdefgbctdefgctdefgtdefg总共四个。

数据范围

每组数据点 1010 分,共 1010 组数据。

数据点编号 nn 的范围 mm 的范围
11 1n101 \leq n \leq 10 1m101 \leq m \leq 10
22 1n1001 \leq n \leq 100 1m1001 \leq m \leq 100
33~66 1n10001 \leq n \leq 1000
88 1n1051 \leq n \leq 10^5
99~1010 1n31051 \leq n \leq 3*10^5

其中 nn 表示字符串 SS 的长度, mm 表示字符串 TT 的长度

大样例

大样例下载