资源限制
时间限制:1.0s 内存限制:256.0MB
问题描述
对于一个字符串 S,我们定义 S 的分值 f(S) 为 S 中出现的不同的字符个数。例如 f("aba")=2,f("abc")=3, f("aaa")=1。
现在给定一个字符串 S[0..n−1](长度为 n),请你计算对于所有 S 的非空子串 S[i..j](0≤i≤j 输入一行包含一个由小写字母组成的字符串 S。 输出一个整数表示答案。 None 对于 20% 的评测用例,1≤n≤10; 对于 40% 的评测用例,1≤n≤100; 对于 50% 的评测用例,1≤n≤1000; 对于 60% 的评测用例,1≤n≤10000; 对于所有评测用例,1≤n≤100000。 看到题目第一想法就是暴力求解,很显然超时。 在网上找到一个神奇的公式:单个字符的值((下标 + 1)x(字符串长度 - 下标) ) 如果一个字符重复出现( (字符串长度 - 下标))x((当前位置 - 前一个位置));输入格式
输出格式
样例输入
ababc
样例输出
28
样例说明
子串 f值
a 1
ab 2
aba 2
abab 2
ababc 3
b 1
ba 2
bab 2
babc 3
a 1
ab 2
abc 3
b 1
bc 2
c 1
评测用例规模与约定
#include
#include



