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,另外相鄰的兩部分不能...