問題描述
單詞接龍是乙個與我們經常玩的成語接龍相類似的遊戲,現在我們已知一組單詞,且給定乙個開頭的字母,要求出以這個字母開頭的最長的「龍」(每個單詞都最多在「龍」**現兩次),在兩個單詞相連時,其重合部分合為一部分,例如 beast和astonish,如果接成一條龍則變為beastonish,另外相鄰的兩部分不能存在包含關係,例如at 和 atide 間不能相連。
輸入格式
輸入的第一行為乙個單獨的整數n (n<=20)表示單詞數,以下n 行每行有乙個單詞,輸入的最後一行為乙個單個字元,表示「龍」開頭的字母。你可以假定以此字母開頭的「龍」一定存在.
輸出格式
只需輸出以此字母開頭的最長的「龍」的長度
樣例輸入5at
touch
cheat
choose
tact
a樣例輸出
23樣例說明
連成的「龍」為atoucheatactactouchoose
#include
#include
typedef
struct
zm_t;
void
q_max
(int
,int
,zm_t,
int,
int[
20],int*)
;int
keyfang
(zm_t*
,zm_t*);
void
zhaogx
(int
,zm_t,
int[
20]);
void
shuru
(int
,zm_t)
;int
main
(void);
shuru
(n,dc)
;getchar()
;char tou =
getchar()
;int gx[20]
[20]=
;zhaogx
(n,dc,gx)
;int max =
0,i;
for(i =
0;i < n;i++)}
printf
("%d"
,max)
;return0;
}void
q_max
(int syg,
int n,zm_t dc,
int sum,
int gx[
20],int
*p_max)}}
intkeyfang
(zm_t*q,zm_t*p)}if
(flag)}}
if(max >0)
return max;
}void
zhaogx
(int n,zm_t dc,
int gx[
20])}
}void
shuru
(int n,zm_t dc)
}
1018 單詞接龍
題目描述 description 單詞接龍是乙個與我們經常玩的成語接龍相類似的遊戲,現在我們已知一組單詞,且給定乙個開頭的字母,要求出以這個字母開頭的最長的 龍 每個單詞都最多在 龍 中出現兩次 在兩個單詞相連時,其重合部分合為一部分,例如beast和astonish,如果接成一條龍則變為beast...
1220 單詞接龍
題目 單詞接龍是乙個與我們經常玩的成語接龍相類似的遊戲,現在我們已知一組單詞,且給定乙個開頭的字母,要求出以這個字母開頭的最長的 龍 每個單詞都最多在 龍 中出現兩次 在兩個單詞相連時,其重合部分合為一部分,例如beast和astonish,如果接成一條龍則變為beastonish,另外相鄰的兩部分...
zufeoj 單詞接龍
單詞接龍是乙個與我們經常玩的成語接龍相類似的遊戲,現在我們已知一組單詞,且給定乙個開頭的字母,要求出以這個字母開頭的最長的 龍 每個單詞都最多在 龍 中出現兩次 在兩個單詞相連時,其重合部分合為一部分,例如beast和astonish,如果接成一條龍則變為beastonish,另外相鄰的兩部分不能存...