NOIP2000 單詞接龍

2022-07-16 19:39:12 字數 1030 閱讀 9157

頹廢了一段時間,,,現在打算一遍學著數論基礎,一遍做著搜尋之類的題目提高**能力。

這道題資料範圍小,是一道典型的搜尋題,但是對解題能力還是有一定要求的。

注意是解題能力!我認為,他包括這幾部分:讀題懂題意,化歸到演算法模型上,編寫**處理好細節。

讀懂題是解決題目的前提,有時解題時間長、出錯率高不是因為知識掌握少,**寫得亂,就是因為最開始沒讀懂題就動手。

這道題的話,需要讀出以下幾點:

1、每個單詞最多出現2次。

2、單詞有重合部分,且應該是指最小重合部分。

3、存在包含關係的兩個單詞不能相連。

結合資料範圍,我們很容易想到可以用搜尋。每次記錄已構成的龍最後乙個單詞以及龍的長度。每次搜尋下乙個單詞,考慮能否接上。

如果不存在可以接上的單詞,則用現在累計的長度更新答案;若存在,將其接上,注意累計長度是加上新單詞的長度-兩單詞重疊部分。

**能力需要做大量的題才能練出來,同樣是實現乙個功能,**能力強就可以快速高效地實現,而且不易出錯。

1 #include2 #include3 #include4 #include

5using

namespace

std;

6const

int maxn=25;7

intn,ans,ccnt[maxn][maxn],vis[maxn];

8charc;9

string

s[maxn];

10 inline int con(string a,string

b) 16

if(flag) return

cnt;17}

18return0;

19}20void dfs(int i,int

len)

31if(flag&&len>ans) ans=len;32}

33int

main()

45 printf("%d"

,ans);

46return0;

47 }

ac**

NOIP2000 單詞接龍

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

NOIP2000提高組 單詞接龍

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

NOIP 2000 提高組 複賽 單詞接龍

noip 2000 提高組 複賽 單詞接龍 1.程式編寫過程中,發現接龍處的判斷編寫有誤,馬上著手修改。2.樣例通過,提交40分,錯了測試點1 4.輸入 1envelopee 輸出 154.上述測試點是挺經典的,不容易考慮到。envelope envelope 拼接成envelopenvelope ...