CH 1601字首統計

2021-09-19 09:03:35 字數 836 閱讀 9276

描述

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

輸入格式

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

輸出格式

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

樣例輸入

3 2

abbc

abcabc

efg

樣例輸出
2

0

字典樹

記錄每個結點是多少個字串的末尾結點,查詢時累加每個點的數量就可以了

#include

#include

using namespace std;

const

int maxn =

1000005

;int tot =

1, trie[maxn][26

], cnt[maxn]

;char s[maxn]

;void

insert

(char

*str)

++cnt[p]

;//出現數量加1

}int

check

(char

*str)

return ans;

}int

main()

for(

int i =

0; i < m;

++i)

return0;

}

字首個數 字首統計

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

問題 L 字首統計

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

142 字首統計 AcWing

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