洛谷 P1019 單詞接龍題解

2021-10-24 17:13:19 字數 885 閱讀 2033

p1019 單詞接龍

解題思路:用dfs進行搜尋,用vis[i]表示這個單詞用過的次數,然後進行查詢。首先從給定的頭開始進行dfs然後進行遍歷每個單詞

1.看這個單詞是否用過的次數<2。

2.看這個單詞是否可以連線上。

然後需要暴力一遍拼的字串長度來判斷是否可以連線,可以的話就進行連線,然後繼續深搜下去。否則話就回溯回來。

**:

#include

#include

#include

using

namespace std;

const

int maxn =

5000

;int n, vis[maxn]

,sum=-1

;string words[maxn]

,a;inline

bool

check

(string a, string b,

int k)

}return1;

}inline

void

add(string& a, string b,

int k)

}inline

void

dfs(string ans)

else

vis[i]++;

dfs(temp)

; vis[i]--;

}}}}

return;}

intmain()

cin >> a;

dfs(a)

; cout << sum << endl;

}

P1019 單詞接龍 洛谷 題解

這到題是乙個題目題,有很多歧義不清的地方 1 字串的重疊部分只去最小的重疊。2 字串與自己不算包含關係例 abab可以自己做自己的龍頭。附ac include include using namespace std int n string a 23 int flag 23 int ans 0 in...

洛谷 P1019 單詞接龍 題解

肺炎時節家家閉,提交oj處處wa 到處都是坑 以下部分 前者 代指目前的龍,後者 代指現在正在判斷的單詞 附 include using namespace std int n string s 27 int vis 27 int maxn len intmax int x,int y 手寫更快 v...

洛谷p1019 單詞接龍

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