描述
給定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,如果沒有單詞就跳出 易錯...