字典樹終於稍微勉強地入了門。
推薦部落格題目 練習題
講一下藍書的乙個例題:
remember the word la3942
建議白天去牛客提交
題意:給你n個單詞,再給你乙個字元長串,問你有多少種分解方案。
dp + 字典樹
設dp[i]表示 i - n 內字串的分解方案數 ,相當於乙個字尾
我們列舉 n - 1 所以能夠遞推出如果以i為起點,j為終點的這一段是乙個單詞,也就是說s[i] - s[j]可以組成乙個單詞,dp[i] += dp[j] ;
具體實現看**,關鍵明白遞推,和以i為起點來找。
#include
using
namespace std;
const
int maxn =
3e5+
10, n =
2e6+
10, mod =
20071027
;char s[maxn]
,tmp[maxn]
;int tr[n][30
],tot;
int vis[n]
,dp[maxn]
;void
init
(int x)
void
insert_
(char
* s)
u = tr[u]
[x];
} vis[u]
= n;
}void
cul(
char
* s,
int p)}}
intmain()
int len =
strlen
(s);
dp[len]=1
;for
(int i=len-
1;i>=
0;i--
)printf
("case %d: %d\n"
,++kase,dp[0]
);for(
int i=
0;i<=tot;i++
)for
(int i=
0;i) dp[i]=0
;}}
字典樹入門
今天先寫了01字典樹,學習部落格 這個01字典樹還是很簡單的,看看模板就會了 貼一下我的模板 const int maxn 1e5 10 int n,m,tot int trie 32 maxn 2 num maxn ll val maxn 32 void init void insert ll x...
字典樹入門
推薦部落格 之所以稱其為字典樹,是因為它在使用的過程中就是乙個類似查字典的過程,我們從第乙個字母乙個乙個的往下面去找 關於字典樹的寫法有兩種,一種是用鍊錶的形式去寫,比較好懂,還有一種就是用陣列的形式去寫,通過結點的編號實現相連的過程。int ch 200010 27 節點編號 int sz 字典樹...
字典樹(查詢樹)入門
樹狀結構儲存字串,查詢快,判斷字首快。又稱單詞查詢樹,trie樹,是一種樹形結構,是一種雜湊樹的變種。例題 link.指標 include include include include set include include include include include include incl...