#dict. 2026提高组模拟赛18-T2 词库检索

2026提高组模拟赛18-T2 词库检索

时间限制:1000ms 内存限制:512MB

项目 内容
输入文件名 dict.in
输出文件名 dict.out
可执行文件名 dict
每个测试点时限 1.0 秒
内存限制 512 MiB
测试点数目 20
是否等分

结果比较方式为全文比较(过滤行末空格及文末换行)。

题目描述

某输入法应用在设备本地维护一个词库,词库中的每个条目是一个单词。用户在检索框中输入一段字符串作为前缀,系统就从词库中选出候选词返回给用户。本题中,词库共收录 nn互不相同的单词,每个单词由小写英文字母构成。

一次检索由两部分组成:一个字符串 pp 和一个正整数 kk。系统先找出词库中所有pp 为前缀的单词,把它们按字典序从小到大排成一列,然后返回这一列中字典序第 kk的那个单词。若以 pp 为前缀的单词总数不足 kk 个(包括一个都没有),系统无法选出第 kk 个单词,此时返回 1-1

一个单词 ww 以字符串 pp 为前缀,指 ww 的长度不小于 pp 的长度,且 ww 的前 p|p| 位依次与 pp 的每一位相同,即 ww 的开头正好是 pp。两个单词的字典序大小按如下规则比较:从第一个字符起逐位比较,若在第 ii 位字符不同,则字符更小(按字母表顺序)的单词更小;若比较到其中一个单词结束仍全部相同,则较短的那个单词更小。

输入格式

从文件 dict.in 中读入数据。

  • 第一行一个正整数 nn,表示词库中单词的个数。
  • 接下来 nn 行,每行一个字符串,表示一个单词。单词由小写英文字母构成,互不相同
  • 接下来一行一个正整数 qq,表示检索次数。
  • 接下来 qq 行,每行一个字符串 pp 和一个正整数 kk,表示一次检索的前缀与所要求的序号。

输出格式

输出到文件 dict.out 中。

qq 行,每行一个字符串,依次对应每次检索的答案;若对应检索没有结果,输出 -1

样例

样例 1 输入

6
apple
app
banana
band
book
a
4
app 1
b 3
app 3
z 1

样例 1 输出

app
book
-1
-1

样例 1 解释

b 为前缀的单词有 bananabandbook 三个,按字典序排列为 bananabandbook,第 3 个是 book。以 app 为前缀的单词只有 appapple 两个,不足 3 个;没有任何单词以 z 为前缀,这两次检索均返回 -1

样例 2 输入

5
cat
catalog
catfish
dog
door
3
cat 2
cata 1
d 2

样例 2 输出

catalog
catalog
door

样例 2 解释

cat 为前缀的单词有 catcatalogcatfish 三个。cat 是另外两个单词的前缀,按字典序最小,排在第一位;catalogcatfish 比较时,第 4 个字符 a 小于 f,故 catalog 在前。排列为 catcatalogcatfish,第 2 个是 catalog。以 d 为前缀的单词有 dogdoor,排列为 dogdoor,第 2 个是 door

样例 3 输入

5
sun
sunny
sunshine
moon
moonlight
2
sun 3
sun 4

样例 3 输出

sunshine
-1

样例 3 解释

sun 为前缀的单词有 sunsunnysunshine 三个。sun 是另外两个单词的前缀,排在第一位;sunnysunshine 比较时,第 4 个字符 n 小于 s,故 sunny 在前。排列为 sunsunnysunshine,第 3 个是 sunshine。该前缀下的单词总数恰为 3,而第二次检索要求第 4 个,超出候选总数,返回 -1

数据范围

对于所有测试数据,保证:

  • 1n1051 \le n \le 10^5,每个单词长度 1\ge 1,所有单词的总长度 106\le 10^6
  • 每个单词以及每次检索的前缀 pp 均由小写英文字母构成,单词互不相同
  • 1q1051 \le q \le 10^5,所有前缀的总长度 106\le 10^6
  • 1kn1 \le k \le n

各测试点的约束如下:

测试点 nn qq 特殊性质
1 ~ 3 100\le 100 无(单词总长 1000\le 1000,前缀总长 1000\le 1000
4 ~ 8 2000\le 2000 无(单词总长 40000\le 40000,前缀总长 40000\le 40000
9 ~ 11 105\le 10^5 A
12 ~ 20

特殊性质 A:所有检索的 kk 均为 11

难度 提高
通过率 50%
尝试 6
已通过 3
ID
704
类型
传统题
Time Limit
1000ms
Memory Limit
512MiB
上传者

相关

在下列比赛中:

暑假CSP-S模拟赛 第3场