#P11840. [USACO25FEB] Vocabulary Quiz S

[USACO25FEB] Vocabulary Quiz S

题目描述

Bessie 正在帮助 Elsie 准备她即将到来的词汇测验。要测验的单词将从 MM 个不同单词的词库中抽取,其中词库里没有一个单词是另一个单词的前缀。

当词库非空时,Bessie 将从词库中选择一个单词,将其从词库中移除,并从左到右逐个字符地读给 Elsie。Elsie 的任务是在她能够唯一确定该单词时告诉 Bessie,此后 Bessie 将停止朗读。

Bessie 已经决定按顺序 w1,w2,,wMw_1,w_2,\dots,w_M 朗读单词。如果 Elsie 尽可能快地回答,Bessie 将朗读每个单词的多少个字符?

这些单词以一种压缩格式给出。我们将首先定义 N+1N+11N1061\le N\le 10^6)个不同的单词,然后词库将由其中所有不作为另一个单词前缀的单词组成。这些单词定义如下:

  • 初始时,第 00 个单词为空字符串。
  • 然后对于每一个 1iN1\le i\le N,第 ii 个单词将等于第 pip_i 个单词在末尾加上一个额外的字符(0pi<i0\le p_i<i)。字符的选择使得所有 N+1N+1 个单词各不相同。

输入格式

输入的第一行包含 NN,其中 N+1N+1 是以压缩格式给出的单词的数量。

以下一行包含 p1,p2,,pNp_1,p_2,\dots,p_N,其中 pip_i 表示第 ii 个单词是通过取第 pip_i 个单词并在末尾添加一个字符形成的。

MM 为不是某个其他单词前缀的单词数量。以下 MM 行将包含 w1,w2,,wMw_1,w_2,\dots,w_M,表示第 wiw_i 个单词将是第 ii 个被朗读的单词。输入保证朗读的单词形成词库中单词的一个排列。

输出格式

输出 MM 行,其中第 ii 行包含 Bessie 对第 ii 个单词朗读的字符数量。

5
0 1 2 3 4
5
0
4
0 0 1 1
4
3
2
2
1
0
4
0 0 1 1
2
3
4
1
2
0

提示

样例 1 解释:

66 个单词编号为 050 \dots 5。单词 55 是唯一一个不是另一个单词的前缀的单词,因此它是词库中唯一的单词。一般地说,一旦库中仅剩下一个单词,Elsie 就不再需要任何字符以确定它。

样例 2 解释:

词库由单词 223344 组成。

Elsie 需要两个字符来确定单词 44,因为单词 3344 的第一个字符相同。

一旦 Bessie 朗读了单词 33 的第一个字符,Elsie 就有了足够的字符来唯一确定它,因为单词 44 已经被朗读。

  • 测试点 454\sim 5:所有单词的长度均不超过 2020
  • 测试点 6106\sim 10:词库中所有单词的长度之和不超过 10710^7
  • 测试点 111811\sim 18:没有额外限制。