zoukankan      html  css  js  c++  java
  • 洛谷P2580 于是他错误的点名开始了

    沙茶

    题目大意:m个询问,某个子串是否出现在n个字符串中,YES/NO,如果重复询问就REPEAT

    题解:Trie树询问

    代码:

    //p2580
    #include<iostream>
    #include<cstdio>
    #include<cstring>
    #define maxn 500009
    using namespace std;
    
    int n,cnt,q,v[maxn],vis[maxn],trie[maxn][26];
    char s[maxn];
    
    void insert(){
        int root=0,len=strlen(s);
        for(int i=0;i<len;i++){
            int id=s[i]-'a';
            if(trie[root][id]==0)trie[root][id]=++cnt;
            root=trie[root][id];
        }
        v[root]=1;
    }
    
    int find(){
        int root=0,len=strlen(s);
        for(int i=0;i<len;i++){
            int id=s[i]-'a';
            if(trie[root][id]==0)return -1;
            root=trie[root][id];
        }
        if(!v[root])return -1;
        vis[root]++;
        return vis[root];
    }
    
    int main(){
        scanf("%d",&n);
        for(int i=1;i<=n;i++){
            scanf("%s",s);
            insert();
        }
        scanf("%d",&q);
        for(int i=1;i<=q;i++){
            scanf("%s",s);
            int p=find();
            if(p==-1)printf("WRONG
    ");
            else if(p==1)printf("OK
    ");
            else printf("REPEAT
    ");
        }
        return 0;
    }
    AC
  • 相关阅读:
    GitHub 实现多人协同提交代码并且权限分组管理
    前端第一篇文章-http标准
    介绍Android电量
    音频编码格式
    PPT
    Word
    HTML 之 JavaScript
    HTML 之 CSS
    HTML 之 HTTP 协议(请求协议以及响应协议)
    HTML 之 标签
  • 原文地址:https://www.cnblogs.com/zzyh/p/7694330.html
Copyright © 2011-2022 走看看