字典樹入門

2022-05-03 13:03:19 字數 2119 閱讀 8016

今天先寫了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)

u =trie[u][v];

num[u]++;

}val[u] =x;

}void update(ll x,intf)}

ll query(ll x)

return val[u] ^x;

}

然後就是今天寫的兩個簡單的裸題

hdu - 4825 

#include #include 

#include

#include

#include

#include

#include

#include

#include

#include

#define inf 0x3f3f3f3f

#define inf64 0x3f3f3f3f3f3f3f3f

using

namespace

std;

typedef

long

long

ll;const

int maxn = 1e5 + 10

;int

n, m, tot;

int trie[32 * maxn][2

];ll val[maxn * 32

];void

init()

void

insert(ll x)

u =trie[u][v];

}val[u] =x;

}ll query(ll x)

return

val[u];

}int

main()

printf(

"case #%d:\n

", cas);

while(m--)

}return0;

}

view code

hdu - 5536 

這個有修改的操作,學習一下

有點卡時間,注意for的優化

#include #include 

#include

#include

#include

#include

#include

#include

#include

#include

#define inf 0x3f3f3f3f

#define inf64 0x3f3f3f3f3f3f3f3f

using

namespace

std;

typedef

long

long

ll;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)

u =trie[u][v];

num[u]++;

}val[u] =x;

}void update(ll x,intf)}

ll query(ll x)

return val[u] ^x;

}ll a[maxn];

intmain()

ll ans = 0

;

for (int i = 1; i <= n; i++)

}printf(

"%lld\n

", ans);

}return0;

}

view code

字典樹入門

字典樹終於稍微勉強地入了門。推薦部落格題目 練習題 講一下藍書的乙個例題 remember the word la3942 建議白天去牛客提交 題意 給你n個單詞,再給你乙個字元長串,問你有多少種分解方案。dp 字典樹 設dp i 表示 i n 內字串的分解方案數 相當於乙個字尾 我們列舉 n 1 ...

字典樹入門

推薦部落格 之所以稱其為字典樹,是因為它在使用的過程中就是乙個類似查字典的過程,我們從第乙個字母乙個乙個的往下面去找 關於字典樹的寫法有兩種,一種是用鍊錶的形式去寫,比較好懂,還有一種就是用陣列的形式去寫,通過結點的編號實現相連的過程。int ch 200010 27 節點編號 int sz 字典樹...

字典樹(查詢樹)入門

樹狀結構儲存字串,查詢快,判斷字首快。又稱單詞查詢樹,trie樹,是一種樹形結構,是一種雜湊樹的變種。例題 link.指標 include include include include set include include include include include include incl...