(我只會無腦dfs了 )題目就是把單詞接起來,接頭至少為1,每次單詞使用次數不超過2,並且要求長度最大是多少。可以先預處理出兩兩單詞之間接龍的接頭長度是多少,然後再進行dfs
貼個**
#include
using
namespace std;
const
int n =25;
string word[n]
;int used[n]
;int g[n]
[n];
int n;
int ans;
void
dfs(
string dragon,
int last)
intmain()
}}for(
int i =
0;i < n;i ++)if
(word[i][0
]== start)
dfs(word[i]
,i);
cout <
< ans <
< endl;
return0;
}
在這個**中,g陣列用來存兩兩之間的接頭長度,used陣列來記錄這個單詞被用了幾次。在預處理中,k從1開始迴圈,最多是某個單詞全部接頭,利用substr函式來看兩個單詞是否可以接頭,如果k這個長度可以了,那麼我們就記錄下來,並且break,這樣保證接頭以後,「龍」盡可能長。 洛谷p1019 單詞接龍
單詞接龍是乙個與我們經常玩的成語接龍相類似的遊戲,現在我們已知一組單詞,且給定乙個開頭的字母,要求出以這個字母開頭的最長的 龍 每個單詞都最多在 龍 中出現兩次 在兩個單詞相連時,其重合部分合為一部分,例如 beast和astonish,如果接成一條龍則變為beastonish,另外相鄰的兩部分不能...
洛谷p1019單詞接龍
單詞接龍是乙個與我們經常玩的成語接龍相類似的遊戲,現在我們已知一組單詞,且給定乙個開頭的字母,要求出以這個字母開頭的最長的 龍 每個單詞都最多在 龍 中出現兩次 在兩個單詞相連時,其重合部分合為一部分,例如 beastbe ast 和 astonishas toni sh,如果接成一條龍則變為 be...
洛谷 P1019 單詞接龍
題目描述 單詞接龍是乙個與我們經常玩的成語接龍相類似的遊戲,現在我們已知一組單詞,且給定乙個開頭的字母,要求出以這個字母開頭的最長的 龍 每個單詞都最多在 龍 中出現兩次 在兩個單詞相連時,其重合部分合為一部分,例如be ast bea st 和astoni sha st onis h,如果接成一條...