码迷,mamicode.com
首页 > 其他好文 > 详细

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

时间:2017-11-29 20:53:11      阅读:205      评论:0      收藏:0      [点我收藏+]

标签:return   cst   names   namespace   ==   std   space   mes   char   

模板题

#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;
}

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

标签:return   cst   names   namespace   ==   std   space   mes   char   

原文地址:http://www.cnblogs.com/poorpool/p/7922496.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!