#4691. Three Days Ago

0
    ID: 4691 传统题 2000ms 1024MiB 尝试: 0 已通过: 0 难度: 3 上传者: 标签>AtCoderabc295DGESP 5级前缀和位运算(复杂)

Three Days Ago

Three Days Ago

题目描述

字符串 2023032220230322 可以重排为 0232023202320232,它是字符串 02320232 重复两次的结果。
类似地,当一个由数字组成的字符串可以被重排成(或本来就是)某个字符串重复两次时,该字符串被称为 happy。
给定一个由数字组成的字符串 SS。求满足下列所有条件的整数对 (l,r)(l,r) 的个数。

1≤l≤r≤∣S∣1 \le l \le r \le |S|。(∣S∣|S| 为 SS 的长度。) 由 SS 的第 ll 到第 rr 个字符组成的(连续)子串是 happy。

输入格式

输入按照标准输入给出,格式如下: SS

输出格式

输出一个整数,表示答案。

20230322
4
0112223333444445555556666666777777778888888889999999999
185
3141592653589793238462643383279502884197169399375105820974944
9

提示

SS 是一个由数字组成的字符串,长度在 11 到 5×1055 \times 10^5 之间(含两端)。我们有 S=S= 2023032220230322。
满足条件的四个整数对 (l,r)(l,r) 如下:(1,6)(1,6),(1,8)(1,8),(2,7)(2,7),和 (7,8)(7,8)。
SS 可能以 00 开头。

标签: AtCoder|abc295D

来源

AtCoder|abc295D