lqb#P20010. 子串分值

    ID: 74 传统题 1000ms 256MiB 尝试: 1 已通过: 1 难度: 3 上传者: 标签>基础算法二分线性数据结构前缀和蓝桥杯

子串分值

题目描述

对于一个字符串 SS, 我们定义 SS 的分值 f(S)f(S)SS 中恰好出现一次的字符个数。例如 $f\left({ }^{\prime \prime} \mathrm{aba}{ }^{\prime \prime}\right)=1$,$f\left({ }^{\prime \prime} \mathrm{abc}{ }^{\prime \prime}\right)=3$,$f\left({ }^{\prime \prime} \mathrm{aaa} \mathrm{a}^{\prime \prime}\right)=0$ 。

现在给定一个字符串 S[0..n1]S[0 . . n-1](长度为 nn),请你计算对于所有 SS 的非空 子串 S[i..j](0ij<n)S[i . . j](0 \leq i \leq j<n)f(S[i..j])f(S[i . . j]) 的和是多少。

输入格式

输入一行包含一个由小写字母组成的字符串 SS

输出格式

输出一个整数表示答案。

ababc
21

数据范围

对于 20%20 \% 的评测用例, 1n101 \leq n \leq 10;

对于 40%40 \% 的评测用例, 1n1001 \leq n \leq 100;

对于 50%50 \% 的评测用例, 1n10001 \leq n \leq 1000;

对于 60%60 \% 的评测用例, 1n100001 \leq n \leq 10000;

对于所有评测用例, 1n1000001 \leq n \leq 100000