资源限制
时间限制: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。 输出一个整数表示答案。 ababc 28 子串 f值a 1ab 2aba 2abab 2ababc 3 b 1 ba 2 bab 2 babc 3 a 1 ab 2 abc 3 b 1 bc 2 c 1 None 对于 20% 的评测用例,1≤n≤10; 对于 40% 的评测用例,1≤n≤100; 对于 50% 的评测用例,1≤n≤1000; 对于 60% 的评测用例,1≤n≤10000; 对于所有评测用例,1≤n≤100000。 看到题目第一想法就是暴力求解,很显然超时。 #include 在网上找到一个神奇的公式:单个字符的值((下标 + 1)x(字符串长度 - 下标) ) 如果一个字符重复出现( (字符串长度 - 下标))x((当前位置 - 前一个位置)); #include输入格式
输出格式
样例输入
样例输出
样例说明
评测用例规模与约定