思路:求出每個單詞和所有單詞的重疊部分的長度(有多個重疊部分的取最短,這樣才能使龍最長,但題目中並沒有明說這一點),遍歷所有單詞選好龍頭,開始dfs。每個單詞就是乙個方向。注意一些特殊情況,比如有包含關係時不能訪問,每個單詞和自己的重疊長度不能是自己的長度。
#include
#include
//每個單詞多個可以走的方向,可以被訪問兩次,到頭時計算路徑長度,dfs。
int n,max=0;
char words[20]
[25],c;
int ol[20]
[20];
//每個單詞和所有單詞的重疊長度
int visit[20]
=;//每個單詞可以被訪問兩遍
int length[20]
;//每個單詞的長度
void
initial()
if(flag==0)
}}else
for(k=
0; k(flag==0)
} ol[i]
[j]=l;}}
}void
dfs(
int now,
int l)}}
intmain
(int argc,
char
** ar**)
printf
("%d"
,max)
;return0;
}
1018 單詞接龍
題目描述 description 單詞接龍是乙個與我們經常玩的成語接龍相類似的遊戲,現在我們已知一組單詞,且給定乙個開頭的字母,要求出以這個字母開頭的最長的 龍 每個單詞都最多在 龍 中出現兩次 在兩個單詞相連時,其重合部分合為一部分,例如beast和astonish,如果接成一條龍則變為beast...
1220 單詞接龍
題目 單詞接龍是乙個與我們經常玩的成語接龍相類似的遊戲,現在我們已知一組單詞,且給定乙個開頭的字母,要求出以這個字母開頭的最長的 龍 每個單詞都最多在 龍 中出現兩次 在兩個單詞相連時,其重合部分合為一部分,例如beast和astonish,如果接成一條龍則變為beastonish,另外相鄰的兩部分...
zufeoj 單詞接龍
單詞接龍是乙個與我們經常玩的成語接龍相類似的遊戲,現在我們已知一組單詞,且給定乙個開頭的字母,要求出以這個字母開頭的最長的 龍 每個單詞都最多在 龍 中出現兩次 在兩個單詞相連時,其重合部分合為一部分,例如beast和astonish,如果接成一條龍則變為beastonish,另外相鄰的兩部分不能存...