First!G
[USACO12DEC]First! G
考虑到跟单词的排名有关,先构建字典树。然后考虑枚举每个单词是否能作为字典序最小者。
首先如果有其他单词是这个单词的前缀的话,这个单词肯定不能作为答案。
其次,如果一个单词需要作为前缀的话,那么在第一层,这个单词的第一个字母必须为同层的单词中最小的。可以连一条有向边表示。以此类推,如果有单词第一个字母和它相同的,看第二层,但是需要注意看第二层的单词必须要求第一层和这个单词是一样的,不然比如 ba
、ab
,那么不能说既要满足 b<a
,又要满足 a<b
。这样复杂度就很低了,用邻接表存图,建关系边(重复就不建立),跑拓扑排序验证是否有环。
本文作者:wscqwq
本文链接:https://www.cnblogs.com/wscqwq/p/17460239.html
版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 2.5 中国大陆许可协议进行许可。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步