我理解的字典樹:
儲存字串(或數字),能快速找到與之匹配的或者與之有某種關係的串。
普通字典樹 解決匹配問題,01字典樹解決異或問題
模板:1.普通字典樹 tree[i][j] 表示i標號的節點的第j個孩子
sum[i] i標號的節點經過了幾次。
flag[i] i標號的節點是否是某個字串的最後乙個點。
int tree[maxn][30
];//30取決於字母的個數,第i個節點的第j個孩子
int tot =0;
ll sum[maxn]
;bool flag[maxn]
;//標號為i的是否為乙個字串的最後乙個
void
add(
char
*s) flag[root]
=true
;//這是個字串
}ll find
(char
*s)return sum[root]
;}
2.01字典樹
就相當於把乙個數的二進位制表示看錯乙個字串插入到字典樹中 i到幾取決於插入的數最大是2的多少次方。
void
add(
int x,
int f)
vis[root]
= x;
}int
find
(int x,
int f)
return vis[root]
}
做完了 就可以入門啦~ 字典樹小結
字典樹,又稱單詞查詢樹,trie樹,是一種樹形結構,典型應用是用於統計,排序和儲存大量的字串,所以經常被搜尋引擎系統用於文字詞頻統計。它的優點是 利用字串的公共字首來節約儲存空間,最大限度的減少無謂的字串比較,查詢效率比雜湊表高。它有三個基本性質,根節點不包含字元,除根節點外每乙個節點都只包含乙個字...
字典樹(小結)
0.1 字典樹 功能 在陣列中找與乙個數異或值最大的元素。支援新增,刪除操作,查詢操作。例如 hdu4825 include include include include include include include include include include include using n...
01字典樹 小結
為了做13年南京網路賽的一道題 學了這個01字典樹 看了別人的模板 之後切了幾道水題 現在總結一下 01字典樹的實現可以看成是把乙個數的二進位制字元化後插入到一顆一般的字典樹中 比如在01字典樹種插入3時 相當於在字典樹中插入00 00011 一共33為,這個根據具體實現不同 查詢最大異或值的時候我...