trie 求调,蜜汁 MLE
查看原帖
trie 求调,蜜汁 MLE
482728
Engulf楼主2022/4/29 22:30

MLE on #1

// author: TMJYH09
// create time: 2022/04/29 20:44:54
#include <bits/stdc++.h>
#define endl '\n'
using namespace std;

const int N = 3e6+10;
int trie[N][123],idx=1;
int cnt[N];
void init(){
    for(int i=1;i<=idx;i++){
        cnt[i]=0;
        for(int j=0;j<123;j++){
            trie[i][j]=0;
        }
    }
    idx=1;
}
void insert(string s){
    int p=1;
    for(int i=0;i<s.size();i++){
        if(!trie[p][s[i]])trie[p][s[i]]=++idx;
        cnt[p]++;
        p=trie[p][s[i]];
    }
    cnt[p]++;
}
int query(string s){
    int p=1;
    for(int i=0;i<s.size();i++){
        if(!trie[p][s[i]])return 0;
        p=trie[p][s[i]];
    }
    return cnt[p];
}

int main(){
    ios::sync_with_stdio(false),cin.tie(nullptr),cout.tie(nullptr);
    int T;cin>>T;
    while(T--){
        int n,q;cin>>n>>q;
        init();
        while(n--){string s;cin>>s;insert(s);}
        while(q--){string s;cin>>s;cout<<query(s)<<endl;}
    }
    return 0;
}
2022/4/29 22:30
加载中...