• AcWing 142. 前缀统计(Trie)


    题目大意:给定n个字符串,然后给出m次询问,问n个字符串中有多少串是当前串的前缀?

    题解:Trie树模板题

    #include<iostream>
    #include<cstdio>
    #include<cstring>
    #include<algorithm>
    using namespace std;
    
    const int N=1000000+3;
    
    int n,m;
    
    int cnt;
    
    int t[N][26],v[N];
    
    char s[N];
    
    void insert()
    {
        int len=strlen(s);
        int p=0;
        for(int i=0;i<len;i++)
        {
            int id=s[i]-'a';
            if(!t[p][id]) t[p][id]=++cnt;
            p=t[p][id];
        }
        v[p]++;
    }
    
    int find()
    {
        int len=strlen(s);
        int ans=0,p=0;
        for(int i=0;i<len;i++)
        {
            int id=s[i]-'a';
            p=t[p][id];
            if(!p) break; //呜呜呜呜没加这一行一直错
            ans=ans+v[p];
        }
        return ans;
    }
    int main()
    {
        scanf("%d%d",&n,&m);
        while(n--)
        {
            scanf("%s",s);
            insert();
        }
        while(m--)
        {
            scanf("%s",s);
            printf("%d
    ",find());
        }
        return 0;
    }
  • 相关阅读:
    SRF 认证
    Python getattr
    jQueryattr()与prop()之间的区别
    鼠标事件(拖拽)
    Python中操作MySQL的模块---pymsql
    C++ 存储类
    C++ 修饰符类型
    C++ 变量作用域
    C++ 变量类型
    C++ 数据类型
  • 原文地址:https://www.cnblogs.com/zzyh/p/14791052.html
Copyright © 2020-2023  润新知