#CCFPB02E04. 同构字符串(测试数据待加强)

    ID: 1058 传统题 1000ms 256MiB 尝试: 13 已通过: 2 难度: 3 上传者: 标签>来源CCF中学生计算机程序设计(基础篇)C++语法高级字符串

同构字符串(测试数据待加强)

题目描述

给定一个字符串 TT,它的长度是 LTLT,那么字符串 TT 可以用字符数组 T[1..LT]T[1..LT] 来表示。你可以把 TT 的任意两个字符交换位置,你可以交换任意多次。经过交换之后的字符串被称为 TT 的同构串。

例如: T=abacT=“abac”,那么 $“aabc”、“aacb”、“baac”、“baca”、“bcaa”、 “caab”、“caba”、“cbaa”$ 等都是字符串T的同构串。而 baab”、“bcab“baab”、“bcab” 等都不是字符串 TT的同构串。 再给定一个字符串 S S ,长度是 LSLS,那么字符串SS 可以用字符数组 S[1..LS]S[1.. LS] 来表示。初始时,ans=0ans=0。对于 SS 的任意长度是 LTLT 的一段(即一个子串), 如果是字符串 TT 的同构串,那么 ansans 增加 11。你的任务就是输出 ansans 最后的值。

输入格式:

第1行,一个字符串T。长度不超过10000,T的每个字符要么是小写字母,要么是大写字母;

第2行,一个字符串S,长度是5000000,S的每个字符要么是小写字母,要么是大写字母。

输出格式:

一个整数,ans最后的值。

样例

aba
baababac
4

样例解释:

当K=1时,S[1..3]=“baa”,是T的同构串。

当K=2时,S[2..4]=“aab”,是T的同构串。

当K=3时,S[3..5]=“aba”,是T的同构串。

当K=4时,S[4..6] =“bab”,不是T的同构串。

当K=5时,S[5..7]=“aba”,是T的同构串。

当K=6时,S[6..8] =“bac”,不是T的同构串。

[数据规模]

对于40%的数据,T的长度不超过100,且S的长度不超过10000。

对于70%的数据,S的长度不超过1000000。

Limitation

1s, 1024KiB for each test case.