Codevs 單詞接龍 DFS,substr

2021-09-12 20:54:15 字數 755 閱讀 3675

單詞接龍

深搜和substr()函式的使用。

由於相連線的單詞只會是乙個連乙個,不可能出現乙個單詞隔著連兩個(這樣中間那個就沒用了),所以不需要儲存連線好的「龍」,只需知道任意兩個單詞之間能否相連,最少幾個字母相連,隻後就可以用dfs來搜尋最長「龍」。

雖然理論上是會超時的,但資料較水,從題目中n<=20也就應該聯想到可以通過遍歷來暴力求解(話說好像也確實沒有什麼巧妙的方法)。

#include

using namespace std;

string str[23]

;int link[23]

[23]=

, used[23]

=, ans =

1, n;

void

dfs(

int a,

int len)

} used[a]--;

ans =

max(ans, len);}

intmain()

}}}//迭代來找公共部分

for(

int i =

1; i <= n; i++)}

//深搜來遍歷每一種情況

cout << ans;

return0;

}

str.substr(start,len);

函式返回值為字串(string),start是開始位置,從0開始,len是返回字串的長度。

其中len可以不填,預設取到末尾。

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...

codevs1018單詞接龍

2000年noip全國聯賽普及組noip全國聯賽提高組 時間限制 1 s 空間限制 128000 kb 題目等級 gold 題解 題目描述 description 單詞接龍是乙個與我們經常玩的成語接龍相類似的遊戲,現在我們已知一組單詞,且給定乙個開頭的字母,要求出以這個字母開頭的最長的 龍 每個單詞...