單詞接龍是乙個與我們經常玩的成語接龍相類似的遊戲,現在我們已知一組單詞,且給定乙個開頭的字母,要求出以這個字母開頭的最長的「龍」(每個單詞都最多在「龍」**現兩次),在兩個單詞相連時,其重合部分合為一部分,例如 beast和tonish,如果接成一條龍則變為beastonish,另外相鄰的兩部分不能存在包含關係,例如at 和 atid 間不能相連。
輸入的第一行為乙個單獨的整數n (n≤20)表示單詞數,以下n 行每行有乙個單詞,輸入的最後一行為乙個單個字元,表示「龍」開頭的字母。你可以假定以此字母開頭的「龍」一定存在.
只需輸出以此字母開頭的最長的「龍」的長度
輸入 #1
5
attouch
cheat
choose
tact
a
輸出 #1
23
(連成的「龍」為atoucheatactactouchoose)
第一眼就感覺是dfs(以後試試尤拉圖能不能寫)
寫了之後發現這題其實是string方法的綜合應用。。。(手動黑臉)
這裡寫上所用的string方法的用法:
string::substr(int start=0,int lenth=nops) 會返回乙個從原字串下標為start開始長度為len的乙個子串(預設起始位置為0,預設長度為(unsigned)-1)
string::erase(int start,int len) 將原字串從下標為start的位置開始刪除len位
知道了這些剩下的就是dfs模擬了。。。
#include using namespace std;
string k[50];
int vis[50]=;
int n;
int serch(string a,string b)
string str;
cin>>str;
dfs(str);
cout
}
洛谷p1019 單詞接龍
單詞接龍是乙個與我們經常玩的成語接龍相類似的遊戲,現在我們已知一組單詞,且給定乙個開頭的字母,要求出以這個字母開頭的最長的 龍 每個單詞都最多在 龍 中出現兩次 在兩個單詞相連時,其重合部分合為一部分,例如 beast和astonish,如果接成一條龍則變為beastonish,另外相鄰的兩部分不能...
洛谷p1019單詞接龍
單詞接龍是乙個與我們經常玩的成語接龍相類似的遊戲,現在我們已知一組單詞,且給定乙個開頭的字母,要求出以這個字母開頭的最長的 龍 每個單詞都最多在 龍 中出現兩次 在兩個單詞相連時,其重合部分合為一部分,例如 beastbe ast 和 astonishas toni sh,如果接成一條龍則變為 be...
洛谷 P1019 單詞接龍
題目描述 單詞接龍是乙個與我們經常玩的成語接龍相類似的遊戲,現在我們已知一組單詞,且給定乙個開頭的字母,要求出以這個字母開頭的最長的 龍 每個單詞都最多在 龍 中出現兩次 在兩個單詞相連時,其重合部分合為一部分,例如be ast bea st 和astoni sha st onis h,如果接成一條...