当前位置: 首页 > news >正文

阿克苏网站建设服务网站中文名

阿克苏网站建设服务,网站中文名,品牌营销公司,广州做外贸网站公司trie 树,即字典树,是一种可以实现 O ( S ) O(S) O(S) 的预处理( S S S 为所有字符串的长度和), O ( N ) O(N) O(N)( N N N 为查询的字符串的长度)的查询的数据结构。 举个栗子,对于…

trie 树,即字典树,是一种可以实现 O ( S ) O(S) O(S) 的预处理( S S S 为所有字符串的长度和), O ( N ) O(N) O(N) N N N 为查询的字符串的长度)的查询的数据结构。

举个栗子,对于字符串: abcd \texttt{abcd} abcd abd \texttt{abd} abd bcd \texttt{bcd} bcd efg \texttt{efg} efg,它的 trie 树如下:

那么,trie 树的建立、查询操作怎么代码实现呢?在此奉上蒟蒻的代码:

  • 建立

    int trie[maxn][30],cnt[maxn],tot;
    //trie[N][r]用来存储Trie树中的子节点(节点编号为N,它的字符儿子编号为r,比如trie[2][3]存储的就是节点编号为2,它的一个儿子为'd')
    //cnt[N]存储的是以当前结尾的字符串有多少个,tot存储当前共有几个节点
    //下标是0的点,既是根节点,又是空节点
    char str[N];
    void insert(char *str)
    {int p=0;//根节点为0for(int i=0;str[i];i++){int u=str[i]-'a';//当前字母子节点if(!trie[p][u]) trie[p][u]=++tot;//如果当前子节点不存在就创造一个点来存储子节点p=trie[p][u];//让p走到子节点的位置cnt[p]++;//结尾是p的字符串个数增加}
    }
    
  • 查询

    int query(char *str)
    {int p=0;for(int i=0;str[i];i++){int u=str[i]-'a';//当前字母子节点的编号if(!trie[p][u]) return 0;//如果当前字符不存在那么直接返回0p=trie[p][u];//让p走到子节点的位置}return cnt[p];//最后返回以p结尾的字符串个数
    }
    

练手板子题

代码如下:

#include <bits/stdc++.h>
using namespace std;const int maxn=2e6+5;
int t[maxn][65],cnt[maxn],tot;
char s[maxn];int getn(char x)
{if(x<='Z'&&x>='A') return x-'A';else if(x<='z'&&x>='a') return x-'a'+26;else return x-'0'+52;
}void insert(char s[])
{int p=0,len=strlen(s);//根节点为0for(int i=0;i<len;i++){int u=getn(s[i]);//当前字母子节点if(!t[p][u]) t[p][u]=++tot;//如果当前子节点不存在就创造一个点来存储子节点p=t[p][u];//让p走到子节点的位置cnt[p]++;//结尾是p的字符串个数增加}
}int ask(char s[])
{int p=0,len=strlen(s);for(int i=0;i<len;i++){int u=getn(s[i]);if(!t[p][u]) return 0;p=t[p][u];}return cnt[p];
}int main()
{int T;cin>>T;while(T--){for(int i=0;i<tot;i++)for(int j=0;j<65;j++) t[i][j]=0;for(int i=0;i<tot;i++) cnt[i]=0;tot=0;int n,q;cin>>n>>q;for(int i=1;i<=n;i++)cin>>s,insert(s);for(int i=1;i<=q;i++)cin>>s,cout<<ask(s)<<endl;}return 0;
}
http://www.yayakq.cn/news/223762/

相关文章:

  • 网站做图尺寸常用网站建设软件有哪些
  • 亚马逊网网站建设规划报告网页设计培训学费多少钱
  • 青岛 两学一做 网站自学网设计
  • 河源市网站建设开发一个电商网站
  • 网站建设维护属于什么专业河北招标信息网
  • 做网站的北京网站空间500M
  • 给企业做网站 工作厦门网站开发公司哪家好
  • 横山桥网站160mk2成色
  • 网站的特效代码网站开发技术笔记
  • 月刊可以用什么网站做佛山做网站制作
  • 无锡优化网站排名网站建设华为
  • 营销型网站哪家好来个可以做渗透的网站
  • 南京的网站建设高端网站建设公司兴田德润可以不
  • 网站建设需要的技术路线做家乡特产的网站
  • 网站制作公司杭州那个网站做拍手比较好
  • 织梦导航网站模板新手怎么用DW建设一个网站
  • dede网站安装教程个人业务网站创建
  • 国外外贸网站有哪些海外营销网站
  • 在线做c 题的网站wordpress的数据库有多大
  • 可以做兼职翻译的网站闵行网络推广公司
  • 合肥优化营商环境wp建站优化
  • 房地产企业网站建设wordpress 能上传apk吗
  • 信息技术制作网站首页建设网站最重要的是什么意思
  • 织梦手机网站教程视频有了域名 接下来怎么做网站
  • 专业做蛋糕视频网站优化设计英语
  • 腾讯网站网站后台开发费用
  • 网站建设中的html页面下载购物车 信息技术分院网站后台设计课题组
  • 网站开发语言都有什么2017 WordPress 主题
  • 网站推广软件工具怎样制作wordpress手机主题
  • 网站设计师前景做网站珊瑚橙颜色怎么搭配好看