博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Trie
阅读量:6081 次
发布时间:2019-06-20

本文共 982 字,大约阅读时间需要 3 分钟。

今晚花了点时间研究了这谜一般的代码。。。。

#include
#include
#include
#include
using namespace std;const int charset=26,base='a',max_node=100000;//charset 为字符集大小//base 为字符集ASCII最小字符//max_node为最大点数struct Trie{ int tot,root,child[max_node][charset]; bool flag[max_node]; Trie(){ memset(child[1],0,sizeof(child[1])); flag[1]=false; root=tot=1; } void insert(const char *str){ int *cur=&root; for(const char *p=str;*p;++p){ cur=&child[*cur][*p-base]; if(*cur==0){ *cur=++tot; memset(child[tot],0,sizeof(child[tot])); flag[tot]=false; } } flag[*cur]=true; } bool query(const char *str){ int *cur=&root; for(const char *p=str;*p && *cur;++p)cur=&child[*cur][*p-base]; return (*cur && flag[*cur]); } }trie;int main(){ int i,j,k,m,n; char s[2000]; cin>>n; while(n--){ cin>>s; trie.insert(s); } cin>>n; while(n--){ cin>>s; cout<
<

转载于:https://www.cnblogs.com/brodrinkwater/p/7528001.html

你可能感兴趣的文章
扩展器必须,SAS 2.0未必(SAS挺进中端存储系统之三)
查看>>
Eclipse遇到Initializing Java Tooling解决办法
查看>>
while((ch = getchar()) != '\n')
查看>>
好程序员web前端分享JS检查浏览器类型和版本
查看>>
Oracle DG 逻辑Standby数据同步性能优化
查看>>
exchange 2010 队列删除
查看>>
「翻译」逐步替换Sass
查看>>
H5实现全屏与F11全屏
查看>>
处理excel表的列
查看>>
C#数据采集类
查看>>
quicksort
查看>>
【BZOJ2019】nim
查看>>
四部曲
查看>>
LINUX内核调试过程
查看>>
【HDOJ】3553 Just a String
查看>>
Java 集合深入理解(7):ArrayList
查看>>
2019年春季学期第四周作业
查看>>
linux环境配置
查看>>
ASP.NET MVC中从前台页面视图(View)传递数据到后台控制器(Controller)方式
查看>>
一个想法(续二):换个角度思考如何解决IT企业招聘难的问题!
查看>>