#P1787. [入门赛 #22] 非众数 Hard Version

    ID: 9825 Type: RemoteJudge 1000ms 512MiB Tried: 0 Accepted: 0 Difficulty: (None) Uploaded By: Tags>2024O2优化语言月赛

[入门赛 #22] 非众数 Hard Version

题目背景

本题是「非众数」的 Hard Version,1n1051 \le n \le 10^5,感谢

https://www.luogu.com.cn/user/101694

题目描述

给定一个长度为 nn 的字符串 ss,保证 ss 仅包含小写字母,求 ss非空子串非众数串的个数。

定义:非空子串

sis_i 表示 ss 中的第 ii 个字符(1in1 \leq i \leq n)。任取两个整数 i,ji, j1ijn1 \leq i \leq j \leq n),将 si,si+1,,sjs_i, s_{i + 1}, \cdots, s_{j} 截取出来按原序排列作为一个新的字符串,则这个字符串叫做 ss 的非空子串。
例如,当 s=abcdes = \texttt{abcde} 时,$\texttt{ab}, \texttt{bcde}, \texttt{c}, \texttt{abcde}$ 都是 ss 的非空子串,而 $\texttt{acd}, \texttt{f}, \texttt{ngioasd}, \texttt{" "}$ 都不是 ss 的非空子串。

定义:非众数串

若字符串 aa 中出现次数最多的字符出现的次数不超过 a2\lfloor \frac{|a|}{2} \rfloor,则称字符串 aa 为一个非众数串。其中 x\lfloor x \rfloor 代表 x\leq x 的最大整数,a|a| 代表 aa 的长度。

输入格式

一行一个字符串,表示 ss

输出格式

一行一个整数,表示答案。

aabb

2

fqmdfnc

21

提示

样例 1 解释

其中 ab,aabb\texttt{ab,aabb}非众数非空子串。

数据范围

对于 100%100\% 的数据,1n1051 \le n \le 10^5,字符串由小写字母组成。