QOJ.ac

QOJ

実行時間制限: 1 s メモリ制限: 512 MB 満点: 100

#526. 魔法

統計

现在是 Daskalov 先生的九年级英语课。我们的主角 Deni 对英语很不擅长,于是她在数教室里的苍蝇。这被证明是一项非常无聊的活动,所以她看向了老师在黑板上写的一些文字。她忽略了单词之间的空格,因此整个文本在她看来就是一个长度为 $N$ 的英文字母序列。设该序列中不同字符的数量为 $K$。Deni 开始从这个序列中截取不同的子串,并记下每个字符出现的次数。当这 $K$ 个字母在子串中出现的次数都相等时,她称当前的子串为“神奇的”。

备注:子串是给定字符串中连续书写的一段字符。

在这节英语课上,她能够检查序列中的每一个子串。同时,她统计了有多少个子串是神奇的,最后她对完成这项活动感到非常高兴。Deni 决定她想在每一节英语课上都这样做。但是,随着每一节后续的英语课,Daskalov 先生在黑板上写的文字变得越来越长。所以她向你寻求帮助——你需要编写一个程序,告诉她给定长度为 $N$ 的英文字母序列中有多少个神奇的子串。

任务

编写一个程序 magic,用于计算给定长度为 $N$ 的英文字母序列中神奇子串的数量。位置不同但内容相同的子串被视为不同的子串。

输入格式

从标准输入的第一行,你的程序需要读取一个整数 $N$ —— Daskalov 先生所写序列的字符数。从下一行开始,你的程序需要读取一个长度为 $N$ 的英文字母字符串。字母可以是小写或大写。注意,同一字母的大小写形式被视为不同的字符(例如 $A$ 和 $a$ 是不同的字符)。

输出格式

程序必须将给定字符串中神奇子串的数量打印到标准输出。由于这个数字可能非常大,你需要输出其除以 $1\,000\,000\,007$ 后的余数。

数据范围

  • $2 \le N \le 100\,000$

子任务

子任务 分值 $N$ 其他约束
1 10 $\le 100$ 无其他约束。
2 20 $\le 2000$ 无其他约束。
3 30 $\le 100\,000$ 给定字符串中只有两种字符 ($K=2$)。
4 40 $\le 100\,000$ 无其他约束。

样例

样例输入 1

8
abccbabc

样例输出 1

4

说明 1

神奇的子串有 abccbaabcabccba。注意,例如子串 ab 不是神奇的,因为字母 c 不在其中。

样例输入 2

7
abcABCC

样例输出 2

1

说明 2

只有子串 abcABC 是神奇的(字母 aA 是不同的,因为 a 是小写字母,而 A 是大写字母)。

样例输入 3

20
SwSSSwwwwSwSwwSww
wwS

样例输出 3

22

说明 3

神奇子串的数量为 22,其中一个是 SwSwwS

Editorials

IDTypeStatusTitlePosted ByLast UpdatedActions
EditorialOpen Official EditorialQingyu- Download

Discussions

About Discussions

The discussion section is only for posting: General Discussions (problem-solving strategies, alternative approaches), and Off-topic conversations.

This is NOT for reporting issues! If you want to report bugs or errors, please use the Issues section below.

Open Discussions 0
No discussions in this category.

Issues

About Issues

If you find any issues with the problem (statement, scoring, time/memory limits, test cases, etc.), you may submit an issue here. A problem moderator will review your issue.

Guidelines:

  1. This is not a place to publish discussions, editorials, or requests to debug your code. Issues are only visible to you and problem moderators.
  2. Do not submit duplicated issues.
  3. Issues must be filed in English or Chinese only.
Active Issues 0
No issues in this category.
Closed/Resolved Issues 0
No issues in this category.