hihoCoder 1014:Trie树

禾赛激光雷达AT128P/海康相机(1):ROS环境设备驱动 sudo cp *.so /opt/MVS/lib/64/ # 复制当前文件夹中所有.so文件 到 “/opt/MVS/lib/64/” 文件中。将相应的.so文件复制到 /opt/MVS/lib/64/。我解压的是x86_64的,解压之后,打开,再解压MVS。然后在上一层,也就是选择x86_64那一层打开终端。新建一个工作空间,或者打开自己的工作空间。)包放在src内,并解压,然后编译。MVS V2.1.2下载之后解压,// 驱动代码下载到src文件里面。// 特定文件夹中打开终端。 阅读详情

#1014 : Trie树


时间限制: 10000ms
单点时限: 1000ms
内存限制: 256MB

描述

小Hi和小Ho是一对好朋友,出生在信息化社会的他们对编程产生了莫大的兴趣,他们约定好互相帮助,在编程的学习道路上一同前进。

这一天,他们遇到了一本词典,于是小Hi就向小Ho提出了那个经典的问题:“小Ho,你能不能对于每一个我给出的字符串,都在这个词典里面找到以这个字符串开头的所有单词呢?”

身经百战的小Ho答道:“怎么会不能呢!你每给我一个字符串,我就依次遍历词典里的所有单词,检查你给我的字符串是不是这个单词的前缀不就是了?”

小Hi笑道:“你啊,还是太年轻了!~假设这本词典里有10万个单词,我询问你一万次,你得要算到哪年哪月去?”

小Ho低头算了一算,看着那一堆堆的0,顿时感觉自己这辈子都要花在上面了...

小Hi看着小Ho的囧样,也是继续笑道:“让我来提高一下你的知识水平吧~你知道树这样一种数据结构么?”

小Ho想了想,说道:“知道~它是一种基础的数据结构,就像这里说的一样!”

小Hi满意的点了点头,说道:“那你知道我怎么样用一棵树来表示整个词典么?”

小Ho摇摇头表示自己不清楚。

提示一:Trie树的建立


“你看,我们现在得到了这样一棵树,那么你看,如果我给你一个字符串ap,你要怎么找到所有以ap开头的单词呢?”小Hi又开始考校小Ho。

“唔...一个个遍历所有的单词?”小Ho还是不忘自己最开始提出来的算法。

“笨!这棵树难道就白构建了!”小Hi教训完小Ho,继续道:“看好了!”

提示二:如何使用Trie树


提示三:在建立Trie树时同时进行统计!


“那么现在!赶紧去用代码实现吧!”小Hi如是说道

输入

输入的第一行为一个正整数n,表示词典的大小,其后n行,每一行一个单词(不保证是英文单词,也有可能是火星文单词哦),单词由不超过10个的小写英文字母组成,可能存在相同的单词,此时应将其视作不同的单词。接下来的一行为一个正整数m,表示小Hi询问的次数,其后m行,每一行一个字符串,该字符串由不超过10个的小写英文字母组成,表示小Hi的一个询问。

在20%的数据中n, m<=10,词典的字母表大小<=2.

在60%的数据中n, m<=1000,词典的字母表大小<=5.

在100%的数据中n, m<=100000,词典的字母表大小<=26.

本题按通过的数据量排名哦~

输出

对于小Hi的每一个询问,输出一个整数Ans,表示词典中以小Hi给出的字符串为前缀的单词的个数。

样例输入
5
babaab
babbbaaaa
abba
aaaaabaa
babaababb
5
babb
baabaaa
bab
bb
bbabbaab
样例输出
1
0
3
0
0

题目连接:http://hihocoder.com/problemset/problem/1014 题目大意:给定一些单词构成字典序列,输入前缀,判断字典中含该前缀的单词个数。裸的trie树。 C++代码如下:
#include <iostream>
#include <cstdio>
#include <cstdlib>
#include <cstring>
#include <cmath>
using namespace std;
const int maxn=15;

struct T   //构造trie树每个节点的结构
{
	int num;          //每个节点出现的次数
	T* next[26];     //每个节点的下一个节点的字母
	T()              
	{
		num=0;
		for(int i=0;i<26;i++)
			next[i]=NULL;     //trie树初始化为空
	}
}trie;

void Insert(char str[]){   //trie树的插入建立
	T* p=≜
	for (int i = 0; str[i]; ++i)   //插入单词str
	{
		int a=str[i]-'a';
		if(p->next[a]==NULL)
			p->next[a]=new T;
		p=p->next[a];      
		p->num++;         //每访问到一次该节点,节点个数加1 
	}
}

int find(char str[])     //查找含有前缀str的单词个数
{
	T* p=≜
	for(int i=0;str[i];i++)    
	{
		int a=str[i]-'a';      //把字母转换成数字
		if(p->next[a]==NULL)     //如果没找到前缀和中匹配的字母,则查找不成功
			return 0;
		p=p->next[a];       //指针指向下一个节点
	}
	return p->num;        //返回该节点出现的次数,即单词个数
}

int main()
{
	int n,m;
	char str[maxn];
	scanf("%d",&n);
	while(n--)
	{
		scanf("%s",str);
		Insert(str);     //把一个单词插入到trie树中
	}
	scanf("%d",&m);
	while(m--)
	{
		scanf("%s",str);     //输入前缀
		printf("%d\n",find(str));    //查找含有此前缀的单词个数
	}
	return 0;
}


【WRF理论第十五期】WPS中输入geogrid二进制格式 WPS中输入geogrid二进制格式 阅读详情

相关推荐

海康SDK回调PS流解析实战:从字节流到前端H264播放的完整流程

本文详细介绍了海康SDK回调PS流解析的完整流程,从字节流获取到前端H264播放的实现。涵盖SDK初始化、PS流数据结构解析、H264裸流提取、WebSocket传输及前端播放器集成等关键步骤,为视频监控系统开发提供实用指导。

weixin_29061531的博客 200

hiho一下第二周 Hihocoder #1014 : Trie树

#1014 : Trie树 时间限制:10000ms 单点时限:1000ms 内存限制:256MB 描述 小Hi和小Ho是一对好朋友,出生在信息化社会的他们对编程产生了莫大的兴趣,他们约定好互相帮助,在编程的学习道路上一同前进。 这一天,他们遇到了一本词典,于是小Hi就向小Ho提出了那个经典的问题:“小Ho,你能不能对于每一个我给出的字符串,都在这个

Luke的学习笔记 3645

WRF所需气象数据的下载方法

#数据下载是个大问题,巧妇难为无米之炊,没有数据就无法模拟啦,疫情期间国外服务器响应慢,打开网页慢都很正常啦~ WRF数据所需要的外部数据分为两种:静态地理数据,grib格式的气象数据(NAM、GFS、RUC、AGRMET等)。静态地理数据可以从WRF官网获得,比较简单,这里不做介绍。所以这篇日志重点介绍的是气象数据的获取。 提前说明,WRF官网不提供气象数据,但WRF官网提供各类气象数据的下载网址链接,所以我们下载一般还是从WRF官网开始。首先进入WRF官网,然后点击WRF ARW Uusres’ .

六出的博客 1万+

【图解算法】Trie树

Trie树,字符串查找树

就爱摆烂 5160

Jaspersoft Studio安装与配置全攻略:从下载到首个报表生成

本文提供Jaspersoft Studio从下载、安装到创建首个报表的完整实战指南。详细介绍了如何获取安装包、配置工作空间,并通过可视化设计器创建报表模板、添加参数与字段,最终实现数据预览与PDF导出。帮助Java开发者快速掌握这一强大的开源报表工具,提升报表开发效率。

weixin_28826521的博客 702

OpenClaw记忆插件升级实战:从memory-lancedb-pro安装到AgentSkill封装

向量数据库作为现代AI应用的核心基础设施,通过将非结构化数据转换为高维向量并利用相似度检索实现语义理解。其原理基于嵌入模型生成向量表示,结合近似最近邻搜索算法实现高效查询。这项技术为智能体系统提供了长期记忆和上下文感知能力,显著提升了对话连贯性与任务执行效率。在AI智能体开发领域,向量数据库常用于知识库构建、对话历史管理和个性化推荐等场景。本文聚焦OpenClaw框架中memory-lancedb-pro插件的部署实践,针对**插件加载顺序**和**Apache Arrow依赖**两大常见痛点,通过封装成可

weixin_42525482的博客 637

Trie树(前缀树、字典树、单词查找树)

Trie树(前缀树、字典树、单词查找树)

m0_54234010的博客 1026

DaVinci Developer中枚举类型变量的创建与实战应用

本文详细介绍了在DaVinci Developer中创建和使用枚举类型变量的方法与实战应用。通过智能温控系统的案例,阐述了枚举类型在嵌入式开发中的核心价值,包括提升代码可读性、类型安全性和维护便捷性。文章还提供了枚举类型在状态机实现和多模块协同中的高级应用技巧,以及调试与优化的实用建议。

ik678901234的博客 511

算法数据结构——字典树、前缀树、单词查找树(Trie)精讲及python实现

算法数据结构——字典树、前缀树、单词查找树(Trie)精讲及python实现

学习中 1289

app逆向分析案例-95分

先把justtrusmeplus打开设置好95分,开始抓包,得到结果为: https://www.95fenapp.com/api_goods/list/v3.0?is_all=1&keywords=%E7%A7%91%E6%AF%94& page=1&page_size=20 &publish_timestamp=0 &scene=2&scene_type=95fen_android_search_personal&sn=SearchList

weixin_41763171的博客 2741

自动化Ai Agent全流程实现【设计+代码】

本文探讨了人工智能代理(AI代理)如何通过自动化复杂的业务流程来帮助企业提高效率和降低成本。AI代理具有适应性、智力、自主性和可扩展性等特点,能够处理非结构化信息、在定义参数范围内做出判断、协调多个系统或利益相关者,以及处理变量输入和异常。文章详细介绍了AI代理在文件处理、客户服务、人才招聘和财务运作等领域的应用,并提供了一个逐步实现发票处理自动化的案例。此外,文章还强调了实施AI代理自动化的优势,包括效率提升、成本降低、准确性和可扩展性的改进,并提出了实施最佳实践,如从高影响力流程开始、设计人机交互、优先

FeelTouch Labs 893

Tire树(字典树-字符串快速查找)

Tire树又称字典树或前缀树,是一种能够快速查找一组字符串含有一个字符串的类似哈希表的树结构,是以空间换时间,利用字符串的前缀来降低查询时间。

qq_46056407的博客 3905

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

[hihoCoder 1014]Trie树[前缀树][前缀树的建立]

题目链接:[hihoCoder 1014]Trie树[前缀树][前缀树的建立] 题意分析:就是题目上那么写的题意XD 解题思路:建立前缀树 个人感受:当做模板记下,方便日后回忆。加了些个人注释~ 具体代码如下: #include #include #include #include using namespace std; const int MAXN = 1e6 + 111;

闲停 499

pscad IEEE标准系统搭建说明

pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。

IMSL CNL 7.0.0 (x86-64)Crack

IMSL CNL 7.0.0 (x86-64)Crack intel的算法库破解文件,这是C++版本的破解文件

Hihocoder 1014Trie树(字典树模板)

时间限制:10000ms 单点时限:1000ms 内存限制:256MB 描述 小Hi和小Ho是一对好朋友,出生在信息化社会的他们对编程产生了莫大的兴趣,他们约定好互相帮助,在编程的学习道路上一同前进。 这一天,他们遇到了一本词典,于是小Hi就向小Ho提出了那个经典的问题:“小Ho,你能不能对于每一个我给出的字符串,都在这个词典里面找到以这个字符串开头的所有单词呢?

spark__s的博客 454

HihoCoder 1014 Trie树模板

传送门:HihoCoder 1014题解 熟练白书的数组模拟Trie树模板 AC code:#include<iostream> #include<cstring> using namespace std;const int maxn(1e6 + 5);int cnt[maxn], ch[maxn][26]; int idx(char p){return p - 'a';} struct Tri

退役ACMer 441

hihoCoder1014 Trie树

基本的tire树 加上模板 #include #include #include #include #include using namespace std; #define MAX 26 typedef struct tirenode { int nCount; // 该节点前缀 出现的次数 struct tirenode *next[MAX];//该节点的后续节点 }

但求心安的博客 409

hihoCoder 1014 Trie树

问题描述描述 小Hi和小Ho是一对好朋友,出生在信息化社会的他们对编程产生了莫大的兴趣,他们约定好互相帮助,在编程的学习道路上一同前进。这一天,他们遇到了一本词典,于是小Hi就向小Ho提出了那个经典的问题:“小Ho,你能不能对于每一个我给出的字符串,都在这个词典里面找到以这个字符串开头的所有单词呢?”身经百战的小Ho答道:“怎么会不能呢!你每给我一个字符串,我就依次遍历词典里的所有单词,检查你给我

lincolnmi的专栏 761

HihoCoder #1014 : Trie树

Tire树第一题

The Blog Of Uncle_Sugar 533

【hihocoder】1014 : Trie树

题目懒得贴了。。 http://hihocoder.com/problemset/problem/1014 思路: easy。。trie树。。。。不同点在于。。为了查询前缀效率更高,在该树中添加节点时,在添加过程中的节点都记录一下以该节点为父节点有多少个子节点。。。。。(说的我头都晕了,其实就是add word时,从root到新节点经过的路径上的每个节点记录值都加一)

业精于勤,荒于嬉 940

hihoCoder-1014-Trie树

这题就是Trie树的应用,我们可以建立一个Trie树,每次插入单词的时候,我们都对该前缀进行加一的一个统计,这样,查询的时候就可以线性查询了。 对于Trie树就是,我们设trie [ i ][ j ] =k ,意思就是编号为i的节点的第j个孩子就是编号为k的节点。 什么意思呢? 这里有两种编号,第一种就是i k编号,这是相对于整棵树而言的,第二种就是i j编号,这是相对节点i来说的。 我们每...

XYQ BLOG 250

【hihocoder】1014. Trie树

hihocoder, trie树

小do在努力 1638

hihoCoder 1014 Trie树

统计前缀

大咸鱼。。。 395

Trie树 Hihocoder 1014 Trie树

题目链接:http://hihocoder.com/problemset/problem/1014 题意:给一些字符串作为字典,再给一些前缀问前缀为这个的有多少个单词。 思路:Trie树模板。 建立的思想不难,用指针指向下一个字符。因为字符长度不定,而且如果是26字母的话就会过长,所以用指针来做最好。那么问题来了。 首先声明一个Trie的时候必须要把他里面标记置为0,把所有指向儿子的Tri

beihai2013 393

hihoCoder1014 Trie树 [Trie]

Trie模板题 不同的是在建树时同时统计出现次数 模板请看 https://github.com/yyecust/icpctemplate/blob/master/%E5%AD%97%E7%AC%A6%E4%B8%B2.md#trie#include <bits/stdc++.h> using namespace std; int nextInt() { int x; scanf("%

more time 309

hihoCoder 1014 Trie树

1014 : Trie树时间限制:10000ms 单点时限:1000ms 内存限制:256MB 描述 小Hi和小Ho是一对好朋友,出生在信息化社会的他们对编程产生了莫大的兴趣,他们约定好互相帮助,在编程的学习道路上一同前进。这一天,他们遇到了一本词典,于是小Hi就向小Ho提出了那个经典的问题:“小Ho,你能不能对于每一个我给出的字符串,都在这个词典里面找到以这个字符串开头的所有单词呢?”身经

Dream_going的博客 470
上一篇: Java编程基础知识入门
下一篇: 基础练习 十六进制转八进制 (java)
雨狮子
博客等级 码龄12年 24粉丝 185原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值