1. 程式人生 > >P1019 單詞接龍 字符串回溯

P1019 單詞接龍 字符串回溯

表示 bottom 包含關系 tac 輸入輸出 字母 兩個 oos copy

題目描述

單詞接龍是一個與我們經常玩的成語接龍相類似的遊戲,現在我們已知一組單詞,且給定一個開頭的字母,要求出以這個字母開頭的最長的“龍”(每個單詞都最多在“龍”中出現兩次),在兩個單詞相連時,其重合部分合為一部分,例如 beastbeast和astonishastonish,如果接成一條龍則變為beastonishbeastonish,另外相鄰的兩部分不能存在包含關系,例如atat 和 atideatide 間不能相連。

輸入輸出格式

輸入格式:

輸入的第一行為一個單獨的整數nn (n \le 20n20)表示單詞數,以下nn 行每行有一個單詞,輸入的最後一行為一個單個字符,表示“龍”開頭的字母。你可以假定以此字母開頭的“龍”一定存在.

輸出格式:

只需輸出以此字母開頭的最長的“龍”的長度

輸入輸出樣例

輸入樣例#1: 復制
5
at
touch
cheat
choose
tact
a
輸出樣例#1: 復制23


又是單詞搜索 每次單詞搜索就要進行很麻煩的預處理
設置 yc[i][j]為 第i個單詞和第j個單詞最大重合字母數量


然後進行回溯 註意回溯的話不僅標記數組要減一 而且答案也要撿減回去








P1019 單詞接龍 字符串回溯