單詞默寫題解 Trie樹模板

2021-07-04 11:17:39 字數 1755 閱讀 1472

單詞默寫

★☆ 輸入檔案:engzam.in 輸出檔案:engzam.out 簡單對比

時間限制:1 s 記憶體限制:128 mb

【問題描述】

小d前一段日子剛剛參加了一次非常苛刻的英語考試。

考試不僅包括了聽力、選擇、填空等基本題型,還包括了一種特殊的單詞默寫題。這類題目都是按照以下形式給出的:

在本學期你所學的所有字首是b的單詞中,在課本中出現次數不少於l的有多少個。

例如小d這個學期只學過三個單詞a、ab、bc,它們出現的次數分別是1、2、3;若給出詢問(b = a,l = 2),那麼字首為a的單詞一共有兩個,是a和ab,其中頻率不少於2的只有乙個,是ab。

這個學期小 d學過的單詞非常多,而考試給出的這類詢問也非常多。這麼困難的任務小d當然不可能解決,於是這個問題被交給了你。

【輸入檔案】

輸入檔案第一行包含兩個用空格隔開的整數n、m,分別表示小d本學期學過的單詞數和考試中出現的詢問數。

接下來n行,每行包含用空格隔開的乙個單詞a和乙個整數p,描述小d本學期學過的乙個單詞a以及其出現的次數p。

接下來m行,每行包含用空格隔開的乙個單詞b和乙個整數l,描述考試中給出的乙個詢問。

你可以假定所有單詞均由小寫字母組成,且長度不超過10。

【輸出檔案】

輸出檔案一共包含m行。

對於每個考試的詢問輸出一行乙個整數,表示該問題的答案。

【樣例輸入】

3 3

a 1

ab 2

bc 3

a 2

a 1

a 3

【樣例輸出】

1 2

0 【樣例說明】

字首為a的單詞一共有兩個,是a和ab,出現次數分別為1和2。

【評分標準】

本題包含10個測試點,對於每個測試點,如果你的輸出和標準輸出完全一樣則得到該測試點的全部分數,否則得0分。

【資料規模】

對於50%的測試資料,滿足n、m ≤ 1 000

對於100%的測試資料,滿足n、m ≤ 100 000,p、l ≤ 100 000

同有道搜尋框那道題,很裸

#include

#include

#include

#include

#include

#include

using

namespace

std;

#define idx(x) x - 'a' + 1;

const

int maxn=1e6+10000;

struct tire tree[maxn];

char str[maxn];

int nxt=1,n,m,cnt,s[100],tim=1;

void work(int,char *,int,int);

int add()

void insert(char *s,int x)

tree[rt].val+=x;

}bool find(char *s,int x)

work(rt,s,1,x);

return1;}

void work(int rt,char *s,int num,int x)

if (tree[rt].next[k])

}}int main()

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

return

0;}

模板 Trie樹模板

trie樹 是一種 樹形結構 是一種雜湊樹的變種。典型應用是用於統計,排序和儲存大量的字串 但不僅限於字串 所以經常被搜尋引擎系統用於文字詞頻統計。首先trie樹的根必定是乙個空節點,每一條邊代表了乙個字元,每乙個節點有多種可能,那麼我們可以使用乙個陣列來達到這個目的 同時,每乙個單詞 字串 的最後...

Trie 單詞查詢樹

l 簡介 trie 又稱單詞查詢樹 字首樹,是一種雜湊樹的變種。應用於字串的統計與排序,經常被搜尋引擎系統用於文字詞頻統計。含有單詞 tea tree a zsu 的一棵trie l性質 n根節點不包含字元,除根節點外的每乙個節點都只包含乙個字元。n從根節點到某一節點,路徑上經過的字元連線起來,為該...

Trie 單詞查詢樹

l 簡介 trie 又稱單詞查詢樹 字首樹,是一種雜湊樹的變種。應用於字串的統計與排序,經常被搜尋引擎系統用於文字詞頻統計。含有單詞 tea tree a zsu 的一棵trie l性質n 根節點不包含字元,除根節點外的每乙個節點都只包含乙個字元。n 從根節點到某一節點,路徑上經過的字元連線起來,為...