P2237 [USACO14FEB] Auto-complete S
题目描述
有 $w$ 个由小写字符构成的字典和 $n$ 个询问。每个询问由一个字符串 $s$ 和一个整数 $k$ 构成,求在字典序排序下字典内由 $s$ 为前缀的第 $k$ 字符串在输入字典的位置。若不存在,则输出 $-1$
输入格式
第 $1$ 行是两个整数 $w$ 和 $n$
第 $2$ 行到第 $w$ + $1$ 行为字典中的第 $i$ - $1$ 个,每行由字符串构成($i$ 指输入的第 $i$ 行)
第 $w$ + $2$ 行到第 $w$ + $n$ + $1$ 行由一个整数 $k$ 和一个字符串 $s$ 构成
输出格式
第 $1$ 行到第 $n$ 行是对于每个询问的结果,由一个整数构成
说明/提示
对于 $100\%$ 的数据,$w \le 30000$,$1\le n \le 3000$,字典内每个字符串的长度均小于等于 $1000$,且字典的单词总长不超过 $10 ^ 6$。
样例解释:
对于第 $1$ 个询问,含义为在字典中找到以 ```a``` 为前缀且按字典序排序后第 $4$ 个字符串,而字典中以 ```a``` 为前缀且按字典序排序后为 $\{$ ```aa```,```aaa```,```aab```,```ab```,```abc```,```ac``` $\}$,第 $4$ 个是 ```ab```,其在输入中为第 $3$ 个,故输出为 $3$
同理,对于第 $2$ 个和第 $3$ 个询问是在字典中找到以 ```da``` 为前缀且按字典序排序后的第 $2$ 和第 $4$ 个字符串。而以 ```da``` 为前缀的字符串按字典序排序后为 $\{$```daa```,```dab```,```dadba``` $\}$,故第 $2$ 个为 ```dab``` ,其在输入中为第 $1$ 个,故第 $2$ 个输出为 $1$,而该序列中没有第 $4$ 个,故第 $3$ 个询问无解,输出 $-1$
来源:USACO 2014 Feburary Contest Silver
翻译:@[zymooll](/user/289296)