字典樹入門

2021-10-05 06:53:40 字數 1128 閱讀 6412

字典樹終於稍微勉強地入了門。

推薦部落格題目 練習題

講一下藍書的乙個例題:

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...