2023年noip全國聯賽普及組noip全國聯賽提高組
時間限制: 1 s
空間限制: 128000 kb
題目等級 : ** gold
題解
題目描述 description
單詞接龍是乙個與我們經常玩的成語接龍相類似的遊戲,現在我們已知一組單詞,且給定乙個開頭的字母,要求出以這個字母開頭的最長的「龍」(每個單詞都最多在「龍」中出現兩次),在兩個單詞相連時,其重合部分合為一部分,例如beast和astonish,如果接成一條龍則變為beastonish,另外相鄰的兩部分不能存在包含關係,例如at和atide間不能相連。
輸入描述 input description
輸入的第一行為乙個單獨的整數n(n<=20)表示單詞數,以下n行每行有乙個單詞,輸入的最後一行為乙個單個字元,表示「龍」開頭的字母。你可以假定以此字母開頭的「龍」一定存在.
輸出描述 output description
只需輸出以此字母開頭的最長的「龍」的長度
樣例輸入 sample input
5attouch
cheat
choose
tacta
樣例輸出 sample output
23
資料範圍及提示 data size & hint
(連成的「龍」為atoucheatactactouchoose)
#include #include #include using namespace std;
string vocabulary[21];//訪問輸入的單詞
int visited[21];//標記當前單詞被訪問的次數
int n;//輸入的單詞的數量
int dlength=-1;//記錄當前「龍」的最大長度
char beginc;//訪問開頭字母
//這個函式是用來連線兩個字串的,可以進行最大連線
//例如:"abecde" 和"ecdef"重疊的部分是"e"而不是"ecde"
//如果輸入的兩個字串不能連線,則返回"",能連線則返回連線後的字串
string connectstr(string &a, string &b)
if (i==-1) return "";
else return (a + b.substr(j, bl - j));
}void dfs(string src) }}
int main() }
cout << dlength;
cin >> dlength;
}
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...
CODE VS 1018 單詞接龍
題目描述 description單詞接龍是乙個與我們經常玩的成語接龍相類似的遊戲,現在我們已知一組單詞,且給定乙個開頭的字母,要求出以這個字母開頭的最長的 龍 每個單詞都最多在 龍 現兩次 在兩個單詞相連時,其重合部分合為一部分,例如beast和astonish,如果接成一條龍則變為beastoni...