Universal Cup Judging System

Universal Cup

时间限制: 4.0 s 内存限制: 1024 MB 总分: 100 可 Hack ✓
统计

你将在接下来的 $q$ 天里从一本字典中学习单词。字典是一个长度为 $n$ 的字符串 $S = s_1s_2 \dots s_n$,由小写英文字母组成,单词定义为 $S$ 的子串。

在第 $i$ 天,你将学习所有以 $S[l_i : r_i] = s_{l_i}s_{l_i+1} \dots s_{r_i}$ 为前缀的单词(即 $S[l_i : r_i]$ 是这些单词的前缀)。在每一天结束后,请统计从第一天开始到当天为止,你已经学习过的不同单词的总数。

输入格式

输入包含多组测试数据。第一行包含一个整数 $T$ ($1 \le T \le 10^4$),表示测试数据的组数。对于每组测试数据:

第一行包含一个长度为 $n$ ($1 \le n \le 2 \times 10^5$) 的字符串 $s_1s_2 \dots s_n$,由小写英文字母组成,表示字典。

第二行包含一个整数 $q$ ($1 \le q \le 2 \times 10^5$),表示你学习单词的天数。

接下来的 $q$ 行,第 $i$ 行包含两个整数 $l_i$ 和 $r_i$ ($1 \le l_i \le r_i \le n$),表示在第 $i$ 天,你将学习所有以 $s_{l_i}s_{l_i+1} \dots s_{r_i}$ 为前缀的单词。

保证所有测试数据的 $n$ 之和以及 $q$ 之和均不超过 $2 \times 10^5$。

输出格式

对于每组测试数据,输出一行包含 $q$ 个整数 $c_1, c_2, \dots, c_q$,用空格分隔,其中 $c_i$ 表示从第 $1$ 天到第 $i$ 天(包含首尾)你已经学习过的不同单词的总数。

样例

输入 1

2
abcabd
3
1 3
1 2
6 6
aaa
3
3 3
2 3
1 3

输出 1

4 6 7
3 3 3

说明

对于第一组样例测试数据:

  • 在第 1 天,你学习了 abc, abca, abcab 和 abcabd。所以答案是 4。
  • 在第 2 天,你学习了 ab, abc, abca, abcab, abcabd 和 abd。你已经学习过的单词共有 4 个,所以答案是 $4 + (6 - 4) = 6$。
  • 在第 3 天,你学习了 d,这是你之前没学过的。所以答案是 $6 + 1 = 7$。

对于第二组样例测试数据,你在第 1 天就已经学习了所有单词 (a, aa, aaa),因此答案始终为 3。

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.