P9364 Perfect Word
本题有两种解法。
第一种是先对字符串按长度从大到小排序,直接枚举每个字符串的所有子串,判断这些子串是否在给定的字符串里。实现时用 map 或者其他你喜欢的容器预先存储每个给定的字符串即可,跑得很快。
第二种是写一个字典树,对字符串从小到大排序后,对于长度为 \(1\) 的字符串,直接插入;否则对于长度为 \(len\) 的字符串,假设下标从 \(1\) 开始,则扫 \(1 \sim len-1\) 位和 \(2\sim len\) 位看在不在树上。如果在树上,就将其插入树,更新答案;否则结束程序。由于这相当于是递推的过程,所以是正确的,但跑得稍慢。
如有不足,还请指出。

浙公网安备 33010602011771号