单词接龙是一个与我们经常玩的成语接龙相类似的游戏,现在我们已知一组单词,且给定一个开头的字母,要求出以这个字母开头的最长的“龙”(每个单词都最多在“龙”中出现两次),在两个单词相连时,其重合部分合为一部分,例如 beastbeast和astonishastonish,如果接成一条龙则变为beastonishbeastonish,另外相邻的两部分不能存在包含关系,例如atat 和 atideatide 间不能相连。
输入格式:
输入的第一行为一个单独的整数nn (n \le 20n≤20)表示单词数,以下nn 行每行有一个单词,输入的最后一行为一个单个字符,表示“龙”开头的字母。你可以假定以此字母开头的“龙”一定存在.
输出格式:
只需输出以此字母开头的最长的“龙”的长度
5 at touch cheat choose tact a
又是单词搜索 每次单词搜索就要进行很麻烦的预处理
设置 yc[i][j]为 第i个单词和第j个单词最大重合字母数量
然后进行回溯 注意回溯的话不仅标记数组要减一 而且答案也要捡减回去
原文:https://www.cnblogs.com/bxd123/p/10533168.html