原題鏈結
trie的基本運用
錯誤思路:
將要查詢字首的字串構建字典樹,這樣的結果是每個字串都要重新構建一次樹,並且我們需要預先儲存要匹配字首的單詞,但題目單詞數目沒有講明,所以我們必須將建樹的字串互換.(這樣建樹會導致mle)
正解思路:
將字首建樹,如果達到乙個結點有單詞就+1,如果沒有單詞就跳出
易錯:我們需要再當前結點的下一節點處看是否有單詞,否則會少計數
可能會有重複單詞
1 #include 2 #include3 #include 4
using
namespace
std;
5const
int n = 1e6+10;6
int son[n][28],idx,cnt[n*28];7
void insert(strings)8
15 cnt[p]++;16}
17int query(string
t)18
26return
ans;27}
28int
main()
2937
for(int i=1;i<=m;i++)
4344
return0;
45 }
AcWing 142 字首統計
題目描述 給定n個字串s1,s2 sn,接下來進行m次詢問,每次詢問給定乙個字串t,求s1 sn中有多少個字串是t的字首。輸入字串的總長度不超過106,僅包含小寫字母。輸入格式 第一行輸入兩個整數n,m。接下來n行每行輸入乙個字串si。接下來m行每行乙個字串t用以詢問。輸出格式 對於每個詢問,輸出乙...
Acwing 142 字首統計
給定n個字串s1,s2 sn,接下來進行m次詢問,每次詢問給定乙個字串t,求s1 sn 中有多少個字串是t的字首。輸入字串的總長度不超過106 僅包含小寫字母。輸入格式 第一行輸入兩個整數n,m。接下來n行每行輸入乙個字串si 接下來m行每行乙個字串t用以詢問。輸出格式 對於每個詢問,輸出乙個整數表...
Trie 142 字首統計 acwing
給定n個字串s1,s2 sn,接下來進行m次詢問,每次詢問給定乙個字串t,求s1 sn中有多少個字串是t的字首。輸入字串的總長度不超過106,僅包含小寫字母。輸入格式 第一行輸入兩個整數n,m。接下來n行每行輸入乙個字串si。接下來m行每行乙個字串t用以詢問。輸出格式 對於每個詢問,輸出乙個整數表示...