wikioi1018 單詞接龍

2021-07-26 09:38:37 字數 1197 閱讀 1060

題目描述 description

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

輸入描述 input description

輸入的第一行為乙個單獨的整數n(n<=20)表示單詞數,以下n行每行有乙個單詞,輸入的最後一行為乙個單個字元,表示「龍」開頭的字母。你可以假定以此字母開頭的「龍」一定存在.

輸出描述 output description

只需輸出以此字母開頭的最長的「龍」的長度

樣例輸入 sample input 5

attouch

cheat

choose

tacta

樣例輸出 sample output

23    

題解:爆搜不解釋

var 

n,i,ans,now:longint;

st:array[1..20]of string;

st1,s:string;

b:array[1..20]of longint;

procedure init;

var i:longint;

begin

ans:=0;now:=1;

fillchar(b,sizeof(b),0);

readln(n);

for i:=1 to n do

readln(st[i]);

readln(st1);

end;

function min(a,b:longint):longint;

begin

if aans then ans:=now;

inc(b[i]);

dfs(st[i]);

now:=now-length(st[i])+j;

dec(b[i]);

end;

end;

end;

end;

end;

begin

init;

dfs(st1);

writeln(ans);

end.

1018 單詞接龍

題目描述 description 單詞接龍是乙個與我們經常玩的成語接龍相類似的遊戲,現在我們已知一組單詞,且給定乙個開頭的字母,要求出以這個字母開頭的最長的 龍 每個單詞都最多在 龍 中出現兩次 在兩個單詞相連時,其重合部分合為一部分,例如beast和astonish,如果接成一條龍則變為beast...

CODEVS 1018單詞接龍

新穎方法 hljs cpp include include using namespace std struct ag 25 25 int cut 25 vis 25 trytry,n,maxn 1 char a 25 20 b int catchdragon char x,char y,int m...

codevs 1018 單詞接龍

題目描述 description 單詞接龍是乙個與我們經常玩的成語接龍相類似的遊戲,現在我們已知一組單詞,且給定乙個開頭的字母,要求出以這個字母開頭的最長的 龍 每個單詞都最多在 龍 中出現兩次 在兩個單詞相連時,其重合部分合為一部分,例如beast和astonish,如果接成一條龍則變為beast...