問題 L 字首統計

2021-09-24 11:11:28 字數 956 閱讀 5268

題目描述

給定n個字串s1,s2…sn,接下來進行m次詢問,每次詢問給定乙個字串t,求s1~sn中有多少個字串是t的字首。輸入字串的總長度不超過10^6,僅包含小寫字母。

輸入第一行兩個整數n,m。接下來n行每行乙個字串si。接下來m行每行乙個字串表示詢問。

輸出對於每個詢問,輸出乙個整數表示答案

樣例輸入

複製樣例資料

3 2ab

bcabc

abcefg

樣例輸出20

這是trie樹的插入

trie[i][j] = k; i是這個節點的編號,j是乙個字母,k是下乙個節點的編號

void insert(char *str)

root = trie[root][x];//跳到下乙個節點

} /*這個是用來統計字串字首的*/

//此時乙個字串已經插入到這棵樹了

//統計以root結束的字串有多少個

vis[root]++;

}

這是trie樹的查詢

int search(char *str)

return ans;

}

ac**

在這裡插入**片#include const int n = 1e6+10;

int trie[n][26];

int vis[n];

int tol = 0;

void insert(char *str)

root = trie[root][x];

} vis[root]++;

}int search(char *str)

return ans;

}int main()

while(m--)

return 0;

}

字首個數 字首統計

給定 n 個字串,s s dots s m 個詢問,每次詢問給定乙個字串 t 求出在 s s dots s 中有多少是 t 的子串 字串你的總長度 leq 10 先將所有的字串插入字典樹之中,然後對每次給定的字串 t 進行查詢操作,累計以其中每個字元結尾的字串個數即可 includeusing na...

142 字首統計 AcWing

原題鏈結 trie的基本運用 錯誤思路 將要查詢字首的字串構建字典樹,這樣的結果是每個字串都要重新構建一次樹,並且我們需要預先儲存要匹配字首的單詞,但題目單詞數目沒有講明,所以我們必須將建樹的字串互換.這樣建樹會導致mle 正解思路 將字首建樹,如果達到乙個結點有單詞就 1,如果沒有單詞就跳出 易錯...

CH 1601字首統計

描述 給定n個字串s1,s2 sn,接下來進行m次詢問,每次詢問給定乙個字串t,求s1 sn中有多少個字串是t的字首。輸入字串的總長度不超過10 6,僅包含小寫字母。輸入格式 第一行兩個整數n,m。接下來n行每行乙個字串si。接下來m行每行乙個字串表示詢問。輸出格式 對於每個詢問,輸出乙個整數表示答...