trie树的最基本题型,题目是要统计在一个字典中,有多少匹配指定前缀的单词,因为trie树是一棵前缀树,所以对于trie树的每个节点在插入时只要经过这个节点便对这个计数变量加一,最后按照trie查询进行统计;返回统计量即可。
#include <iostream>
#include <cstdio>
#include <cstring>
using namespace std;
struct node
{
int num;
bool f;
int next[26];
void init(){num=0;f=0;memset(next,-1,sizeof(next));};
}trie[1000000];
int p;
char input[100];
void root()
{
trie[p=0].init();
}
void insert(char* a)
{
int index=0;
int len=strlen(a);
int cur;
for(int i=0;i<len;i++)
{
cur=a[i]-'a';
if(trie[index].next[cur]==-1)
{
trie[++p].init();
trie[index].next[cur]=p;
}
trie[index].num++;
index=trie[index].next[cur];
}
trie[index].f=1;
trie[index].num++;
}
int find(char* a)
{
int index=0;
int len=strlen(a);
int cur;
for(int i=0;i<len;i++)
{
cur=a[i]-'a';
if(trie[index].next[cur]==-1)return 0;
index=trie[index].next[cur];
}
return trie[index].num;
}
int main()
{
char input[100];
int word;
int query;
root();
int i;
while(1)
{
cin.getline(input,20);
//scanf("%s",input);
if(strlen(input)==0) break;
insert(input);
}
while(scanf("%s",input)!=EOF)
{
//scanf("%s",input);
cout<<find(input)<<endl;
}
return 0;
}
分享到:
相关推荐
为了满足学校师生对于校园生活便捷服务的需求,开发者们专门为杭电校园生活打造了一款Chrome浏览器插件——HDU-GO。该插件不仅能够帮助学生更快捷地访问校园信息资源,还集成了诸如课程表查看、图书馆资源搜索、校园...
HDU-ACM源代码是针对国际大学生程序设计竞赛(ICPC,International Collegiate Programming Contest)中的题目,由参赛者或爱好者编写的解决方案集合。这个压缩包包含上百个源代码,涉及了各种算法和编程技巧,是...
标题中的“hi3861-hdu-iot-application.zip”指代的是一个压缩包文件,它包含了针对Hi3861平台的开发套件,这是一个专为物联网应用设计的开发环境。Hi3861是华为推出的一款面向物联网领域的芯片,它集成了Wi-Fi、...
在本话题中,我们关注的是一个名为"HDU-EID-V2-核心板1"的特定设计,它涉及到STM32的核心组件、接口、电源管理和调试配置。 首先,核心板设计中提到了F103和F207两个型号的STM32芯片。F103和F207属于STM32的不同...
标题中的“算法-数塔(HDU-2084)”是指一个编程竞赛题目,源自杭州电子科技大学(HDU)的在线编程平台。在这个问题中,参赛者被要求解决一个名为“数塔”的算法挑战。数塔问题通常涉及到递归、深度优先搜索(DFS)...
期末复习自行整理资料分享_HDU-fuxiziyong
《2019-hdu-multi-(2019杭电多校第二场数据与标程).zip》是一个专门针对编程竞赛爱好者和ACM(国际大学生程序设计竞赛)参赛者的资源包。这个压缩文件的核心内容是2019年杭州电子科技大学(HDU)主办的多校联合...
【标题】"HDU-2000-2099.zip_hdu2000" 是一个包含杭电(Hangzhou Dianzi University)ACM竞赛题目解题报告的压缩包,覆盖了编号从2000到2099的题目。这个资源对于学习算法、提高编程技巧以及准备ACM/ICPC(国际大学...
这个名为"HDU-2000-2099.rar_hdu"的压缩包包含了该平台从2000到2099共100道题目的源代码。这些题目涵盖了初级到高级的各种算法,对于学习和提升编程技能非常有帮助。 首先,我们来看看这些题目可能涉及到的基础知识...
算法-免费馅饼(HDU-1176)(包含源程序).rar
个人数据库原理课程设计的期末作业留档_HDU-suspermarket_sys.zip文档是关于数据库原理的教学实践成果,主要面向高校计算机科学与技术专业的学生。这份作业不仅包括了数据库理论知识的运用,还融入了实际操作环节,...
### hdu1250高精度加法 #### 背景介绍 在计算机科学与编程竞赛中,处理大整数运算(特别是加法、减法、乘法等)是常见的需求之一。当数字的位数超过了标准数据类型(如`int`、`long`等)所能表示的最大值时,就需要...