why Runtime Error

P8306 【模板】字典树

OIer_Hhy @ 2024-09-01 11:28:31

#include<bits/stdc++.h>
using namespace std;
const int N=3e6+10;
char tr[N][128];
int cnt[N],idx,n,q;
string s;
void insert(string s){
    int len=s.size(),p=0;
    for(int i=0;i<len;i++){
        int j=s[i];
        if(!tr[p][j]) tr[p][j]=++idx;
        p=tr[p][j];
        cnt[p]++;
    }
}
int query(string s){
    int len=s.size(),p=0;
    for(int i=0;i<len;i++){
        int j=s[i];
        if(!tr[p][j]) return 0;
        p=tr[p][j];
    }
    return cnt[p];
}
void solve(){
    for(int i=0;i<=idx;i++){
        for(int j=0;j<128;j++) tr[i][j]=0;
    }
    for(int i=0;i<=idx;i++) cnt[i]=0;
    idx=0;
    cin>>n>>q;
    while(n--){
        cin>>s;
        insert(s);
    }
    while(q--){
        cin>>s;
        cout<<query(s)<<'\n';
    }
}
int main(){
    int t;
    cin>>t;
    while(t--) solve();
    return 0;
}

by OIer_Hhy @ 2024-09-01 11:45:06

sorry,trie 的类型应该是 int,辛苦大佬们帮我调了。

此贴结。


by Small_Traveler @ 2024-10-08 13:32:46

我也因为这个re了


|