洛谷p1019 單詞接龍

2022-06-26 12:45:12 字數 912 閱讀 2318

題意:輸入一系列單詞,輸入乙個字母,求出以這個字母開頭,由輸入單詞拼接成的乙個最長字串的長度,每個單詞可以出現兩次,兩個拼接在一起的單詞帶有重疊部分但是彼此不能有包含關係

這是一道dfs的題目,之前想到dfs, bfs總是自覺的想到乙個二維陣列找路徑之類的問題,剛看這題時完全想不到如何用dfs求解,這道題讓我更加了解了dfs搜尋的本質,其實和暴力列舉類似,就是地毯式搜尋,搜尋每一種情況

思路是先對輸入資料做一次處理,算出它們每乙個單詞與其它單詞重疊部分的最小長度(因為最後要求拼接成最長的乙個單詞)

然後遍歷每個單詞,若首字母為給定字母則開始搜尋(若理解不了這裡搜尋的意思,可以將其看成列舉,多做幾道入門經典dfs題目可對其有更深理解)

#includeusing

namespace

std;

intans;

intn;

int vis[20

];int cl[20][20

];char

c;string words[20

];int commenlength(string a, string

b)else

}if(flag)

minlen = min(i+1

, minlen);

} return minlen == 50?0

: minlen;

}void dfs(int length, int

idx)}}}

intmain()

} cin >>c;

for(int i=0; i)

} cout

<

return0;

}

洛谷p1019 單詞接龍

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

洛谷p1019單詞接龍

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

洛谷 P1019 單詞接龍

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