First!G

[USACO12DEC]First! G

考虑到跟单词的排名有关,先构建字典树。然后考虑枚举每个单词是否能作为字典序最小者。

首先如果有其他单词是这个单词的前缀的话,这个单词肯定不能作为答案。

其次,如果一个单词需要作为前缀的话,那么在第一层,这个单词的第一个字母必须为同层的单词中最小的。可以连一条有向边表示。以此类推,如果有单词第一个字母和它相同的,看第二层,但是需要注意看第二层的单词必须要求第一层和这个单词是一样的,不然比如 baab,那么不能说既要满足 b<a,又要满足 a<b。这样复杂度就很低了,用邻接表存图,建关系边(重复就不建立),跑拓扑排序验证是否有环。

代码

本文作者:wscqwq

本文链接:https://www.cnblogs.com/wscqwq/p/17460239.html

版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 2.5 中国大陆许可协议进行许可。

posted @   wscqwq  阅读(12)  评论(0编辑  收藏  举报
评论
收藏
关注
推荐
深色
回顶
收起
点击右上角即可分享
微信分享提示