字典樹的總結

2021-08-22 16:14:27 字數 1264 閱讀 5653

time limit: 2000 ms memory limit: 65536 kib

submit

statistic

problem description

ff得到了乙個有n個數字的集合。不要問我為什麼,有錢,任性。

ff很好奇的想知道,對於數字x,集合中有多少個數字可以在x前面新增任意數字得到。

如,x = 123,則在x前面新增數字可以得到4123,5123等。

input

多組輸入。

對於每組資料

首先輸入n(1<= n <= 100000)。

接下來n行。每行乙個數字y(1 <= y <= 100000)代表集合中的元素。

接下來一行輸入m(1 <= m <= 100000),代表有m次詢問。

接下來的m行。

每行乙個正整數x(1 <= x <= 100000)。

output

對於每組資料,輸出乙個數字代表答案。

sample input

3

12345

66666

12356345

12345

356

sample output

1

01

hint

建立字典樹,一共分為四個函式,分別是建立字典樹的根節點的函式,插入函式,查詢函式,主函式。

此題還需要注意的一點是要把輸進去的數字都拆開乙個數字乙個數字的插入,查詢的時候如果遇到沒有這個就會返回0,反之返回這個節點的記錄下的資料。

accepted:

#include #include #include struct node

;struct node a[1001000]; //設定乙個靜態陣列

int top;

struct node *creat() //首先建立乙個空樹

return root;

}struct node *insert(struct node *root,int s) //插入以後的數字

p->data--; //之所以要減去乙個一是本身不用記錄

return root;

}int find(struct node *root,int s)

return p->data; //如果找到就會返回當前的節點

}int main()

scanf("%d",&m);

while(m--)

}return 0;

}

字典樹(模板 總結)

編輯又稱單詞查詢樹,trie樹,是一種 樹形結構,是一種雜湊樹的變種。典型應用是用於統計,排序和儲存大量的 字串 但不僅限於字串 所以經常被搜尋引擎系統用於文字詞頻統計。它的優點是 利用字串的公共字首來減少查詢時間,最大限度地減少無謂的字串比較,查詢效率比 雜湊樹高。它有3個基本性質 根節點不包含字...

字典樹學習總結

解決問題 主要應對多次查詢,典例就是字典,字典樹就是一本字典,字典的最大好處就是能快速查詢 主要原理 我們在查某乙個單詞時總會先索引第乙個字母,然後在查第二個字母,以此類推直到查到此單詞為止,那麼字典樹的查詢過程也是如此,先查第乙個字母的節點位置,然後在該節點的子節點之中查詢第二個字母的位置,以此類...

字典樹學習總結

字串的多模匹配,kmp,字典樹,ac自動機,現在學習字典樹 字典樹又稱為單詞查詢樹,用於統計,排序和儲存大量的字串 但不僅限於字串 所以經常被搜尋引擎系統用於文字詞頻的統計。優點是利用字串的公共字首來減少查詢時間,最大限度減少無畏字串比較,查詢效率比雜湊樹高。其實字典樹就是dfa!每層是乙個狀態,只...