MLE求调
查看原帖
MLE求调
1296126
beginingw楼主2024/9/7 23:25

谢谢!

#include <bits/stdc++.h>
using namespace std;

const long long N = 1e6;
long long son[N][26],cnt[N],idx;
int n,m;

void insert(string s){
    int p = 0;
    for(int i = 0;i<s.size();i ++){
        int u = s[i] - 'a';
        if (!son[p][u]) son[p][u] = ++ idx;
        p = son[p][u];
    }
    cnt[p]++;
}

int query(string s){
    int p = 0;
    for (int i = 0;i<s.size();i++){
        int u = s[i] - 'a';
        if (!son[p][u]) return 0;
        p = son[p][u];
    }
    return cnt[p];
}



int main(){
    cin >> n;
    for(int i=0;i<n;i++){
        string s;
        cin >> s;
        insert(s);
        
    }
    cin >> m;
    for(int j=0;j<m;j++){
        string x;
        cin >> x;
        if(query(x)==0)cout << "WRONG"<<endl;
        if(query(x)==1){cout << "OK"<<endl;}
        if(query(x)>1)cout << "REPEAT"<<endl;
        insert(x);
    }


    return 0;
}
2024/9/7 23:25
加载中...