luogu2580 于是他错误的点名开始了 Trie树

论坛 期权论坛 脚本     
已经匿名di用户   2022-5-29 19:11   920   0

模板题

#include <iostream>
#include <cstring>
#include <cstdio>
using namespace std;
struct Node{
    int cnt, son[29];
    bool hav;
    Node(){
        cnt = hav = 0;
    }
}trie[500005];
int c, n, m, len;
char s[55];
void ins(){
    int u=0;
    for(int i=0; i<len; i++){
        int v=s[i]-'a';
        if(!trie[u].son[v]) trie[u].son[v] = ++c;
        u = trie[u].son[v];
    }
    trie[u].hav = true;
}
int que(){
    int u=0;
    for(int i=0; i<len; i++){
        int v=s[i]-'a';
        if(!trie[u].son[v]) return 3;
        u = trie[u].son[v];
    }
    if(!trie[u].hav)    return 3;
    if(!trie[u].cnt){
        trie[u].cnt++;
        return 1;
    }
    return 2;
}
int main(){
    cin>>n;
    for(int i=1; i<=n; i++){
        scanf("%s", s);
        len = strlen(s);
        ins();
    }
    cin>>m;
    for(int i=1; i<=m; i++){
        scanf("%s", s);
        len = strlen(s);
        int t=que();
        if(t==1)    printf("OK\n");
        else if(t==2)   printf("REPEAT\n");
        else    printf("WRONG\n");
    }
    return 0;
}

转载于:https://www.cnblogs.com/poorpool/p/7922496.html

分享到 :
0 人收藏
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

积分:81
帖子:4969
精华:0
期权论坛 期权论坛
发布
内容

下载期权论坛手机APP