首页 > 其他分享 >Trie 树

Trie 树

时间:2023-11-13 20:23:26浏览次数:42  
标签:gt Trie ++ len son int

Trie 树是一颗像字典一样的树。

在 Trie 树上用边来表示字母,一个节点到另一个节点的边就是一个字母。

实现:

点击查看代码
void insert (char s[]) {
	int u = 0, len = strlen (s);
	for (int i = 0; i < len; i ++) {
		int v = gt (s[i]);
		if (!son[u][v]) son[u][v] = ++ cnt;
		u = son[u][v];
		w[u] ++;//以v为结尾的字符串个数
	}
}

int find (char s[]) {
	int u = 0, len = strlen (s);
	for (int i = 0; i < len; i ++) {
		int v = gt (s[i]);
		if (!son[u][v]) return 0;
		u = son[u][v];
	}
	return w[u];
}

例题:P2580 于是他错误的点名开始了 基础操作。

P3879 [TJOI2010] 阅读理解 虽然要用bitset卡空间

bitset 使用方法

标签:gt,Trie,++,len,son,int
From: https://www.cnblogs.com/21devoted/p/17830067.html

相关文章

  • 【LC周赛-371】 D. Trie树求最大异或对
    【LC周赛-371】D.Trie树求最大异或对题意给一个数组,求两个数满足|x-y|<=min(x,y)的异或最大值。题解从|x-y|<=min(x,y)知道,每个y可以考虑的x范围是y/2<=x<y;然后Trie树实现更优复杂度内,从窗口获得最大异或值思路就是高位依次取值,具体看代码吧代码constint......
  • 解决MySQL8报错:Public Key Retrieval is not allowed
    问题分析:这个是由于配置的URL中的useSSL为false导致的,当其为false后,mysql将会检查allowPublicKeyRetrieval是不是TRUE,由于开启allowPublicKeyRetrieval不安全可能遭到中间人攻击(英语:Man-in-the-middleattack,缩写:MITM),所以allowPublicKeyRetrieval的值默认为false。两项都为false后......
  • trie(字典树)学习笔记
    trie(字典树)学习笔记trie可以在\(O(nL)\)的时间,\(O(n\left|\Sigma\right|L)\)的空间完成插入,查找字符串。其中\(L\)为字符串长,\(\Sigma\)为字符集inttrie[N][26],tot;inttag[N];voidinsert(){intn=str.size();intu=0;for(inti=0;i<n......
  • 字典树【Trie】
    字典树【Trie】一种能够快速插入和查询字符串的多叉树结构节点的编号各不相同,根节点编号为0,其它节点用来标识路径,还可以标记单词插入的次数。边标识字符Tier维护字符串的集合,支持2种操作:向集合中拆入一个字符串,voidinsert(charc)向集合中查询一个字符串,intquery(charc)......
  • com.mysql.jdbc.exceptions.jdbc4.MySQLNonTransientConnectionException: Public Key
    问题:连接MySQL数据库时抛出异常信息:com.mysql.jdbc.exceptions.jdbc4.MySQLNonTransientConnectionException:PublicKeyRetrievalisnotallowed一开始aplication.yml配置如下所示:spring:application:name:service-provider-sentinel9999datasource:driver-cl......
  • EF出现错误:An error occurred while updating the entries. See the inner exception
    问题:EF出现错误Anerroroccurredwhileupdatingtheentries.Seetheinnerexceptionfordetails场景:适用Excel批量导入数据时,提示了以上错误解决思路:1、查看是否有重复的主键2、是否有不可为空的字段没有赋值3、字段内容是否超出长度限制......
  • ☀️Navicat连接Oracle:'ORA-12638: Credential retrieval failed' 解决办法
    前言:我们在使用Navicat连接Oracle数据库的时候,需要oci.dll动态链接库,Navicat16在安装时候已经自带了。我在之前使用一直好好的,就今天需要连一个新项目的Oracle,报错了:ORA-12638:Credentialretrievalfailed',如下:解决:通过同事口中得知,要连接的Oracle版本是:12c(12.2.0.1.0),而我之前......
  • UniKGQA Unified Retrieval and Reasoning for Solving Multi-hop Question Answering
    目录概主要内容代码JiangJ.,ZhouK.,ZhaoW.andWenJ.UniKGQA:Unifiedretrievalandreasoningforsolvingmulti-hopquestionansweringoverknowledgegraph.ICLR,2023.概统一:从知识图谱中检索出相关的子图,并在子图中进行推理.主要内容我们有知识图谱......
  • Trie树学习笔记
    参考资料看到一大堆字符串同时出现,就往哈希和Trie树那边想一下字典树的功能1.维护字符串集合(即字典)。2.向字符串集合中插入字符串(即建树)。3.查询字符串集合中是否有某个字符串(即查询)。4.统计字符串在集合中出现的个数(即统计)。5.将字符串集合按字典序排序(即字典序排序)。6.......
  • Trie-前缀查询
    Tire专门为处理字符串设计的。平衡二叉树,查询复杂度是O(logn)但是100万个条目,2^20,logn大约20.但是Tire的复杂度,和字段中一共有多少条目无关!世间复杂度为O(w),w为查询单词的长度大多数的单词长度小于10图示整个字符串以字母为单位拆开cat、dog、deer、panda 可以看出每......