hihoCoder 1014trie树(字典树)
题目提示已经很清楚了~
贴代码……
#include <iostream>
#include <cstdio>
#include <cstring> using namespace std;
const int MAXN = + ;
const int alNum = ;
struct Node{
int cnt;
int next[alNum];
void init(){
memset(next,-,sizeof(next));
cnt = ;
return;
}
};
Node trie[MAXN];
int tt;
void build_trie(char str[]){
int len = strlen(str);
int p = ;
for(int i = ;i < len;i++){
int ch = str[i] - 'a';
if(trie[p].next[ch] == -){
trie[tt].init();
trie[p].next[ch] = tt++;
}
p = trie[p].next[ch];
trie[p].cnt++;
}
}
int quercy(char str[]){
int len = strlen(str);
int p = ;
for(int i = ;i < len;i++){
int ch = str[i] - 'a';
if(trie[p].next[ch] == -){
return ;
}
p = trie[p].next[ch];
}
return trie[p].cnt;
}
int main(){
// freopen("input.txt","r",stdin);
int n,m;
while(~scanf("%d",&n)){
char str[];
tt = ;
trie[tt++].init();
for(int i = ;i < n;i++){
scanf("%s",str);
build_trie(str);
}
scanf("%d",&m);
for(int i = ;i < m;i++){
scanf("%s",str);
int q = quercy(str);
printf("%d\n",q);
}
}
return ;
}
字典树 水题
判断一个是否为另一个的前缀。
注意 9113
911 的情况……
#include <iostream>
#include <cstdio>
#include <cstring> using namespace std;
const int MAXN = + ;
const int NextNum = ; int tt;
struct Node{
int next[NextNum];
bool flag;
void init(){
memset(next,-,sizeof(next));
flag = ;
}
};
Node trie[MAXN];
bool build_trie(char str[]){
int p = ;
int len = strlen(str);
for(int i = ;i < len;i++){
int x = str[i] - '';
if(trie[p].next[x] == -){
trie[tt].init();
trie[p].next[x] = tt++;
}
p = trie[p].next[x];
if(trie[p].flag){
return ;
}
}
for(int i = ;i < NextNum;i++){
if(trie[p].next[i] != -){
return ;
}
}
trie[p].flag = ;
return ;
} int main(){
// freopen("input.txt","r",stdin);
int t;
scanf("%d",&t);
while(t--){
int n;
scanf("%d",&n);
tt = ;
trie[tt++].init();
bool ok = ;
char str[+];
for(int i = ;i < n;i++){
scanf("%s",str);
if(!ok){
continue;
}
ok = build_trie(str);
}
printf("%s\n",ok?"YES":"NO");
}
return ;
}
hihoCoder 1014trie树(字典树)的更多相关文章
- 剑指Offer——Trie树(字典树)
剑指Offer--Trie树(字典树) Trie树 Trie树,即字典树,又称单词查找树或键树,是一种树形结构,是一种的单词.对于每一个单词,我们要判断他出没出现过,如果出现了,求第一次出现在第几个位 ...
- 9-11-Trie树/字典树/前缀树-查找-第9章-《数据结构》课本源码-严蔚敏吴伟民版
课本源码部分 第9章 查找 - Trie树/字典树/前缀树(键树) ——<数据结构>-严蔚敏.吴伟民版 源码使用说明 链接☛☛☛ <数据结构-C语言版>(严蔚 ...
- AC自动机——1 Trie树(字典树)介绍
AC自动机——1 Trie树(字典树)介绍 2013年10月15日 23:56:45 阅读数:2375 之前,我们介绍了Kmp算法,其实,他就是一种单模式匹配.当要检查一篇文章中是否有某些敏感词,这其 ...
- hihoCoder 403 Forbidden 字典树
题意:给定个规则,个ip,问这些ip是否能和某个规则匹配,如果有多个规则,则匹配第一个.如果没能匹配成功,则认为是"allow",否则根据规则决定是"allow" ...
- Trie树|字典树(字符串排序)
有时,我们会碰到对字符串的排序,若采用一些经典的排序算法,则时间复杂度一般为O(n*lgn),但若采用Trie树,则时间复杂度仅为O(n). Trie树又名字典树,从字面意思即可理解,这种树的结构像英 ...
- Trie树/字典树题目(2017今日头条笔试题:异或)
/* 本程序说明: [编程题] 异或 时间限制:1秒 空间限制:32768K 给定整数m以及n个数字A1,A2,..An,将数列A中所有元素两两异或,共能得到n(n-1)/2个结果,请求出这些结果中大 ...
- Trie树 字典树-学习笔记
字符串--蒟蒻永远的阴影 对于字符串匹配 KMP很好的解决了以一个文本串匹配一个模板串的问题 但如果模板串有多个呢 这是KMP不再适用 我们引入一个新的数据结构--字典树 (当然又有像AC自动机这样更 ...
- Trie树(字典树)的介绍及Java实现
简介 Trie树,又称为前缀树或字典树,是一种有序树,用于保存关联数组,其中的键通常是字符串.与二叉查找树不同,键不是直接保存在节点中,而是由节点在树中的位置决定.一个节点的所有子孙都有相同的前缀,也 ...
- Luogu P2580 于是他错误的点名开始了 Trie树 字典树
字典树裸题.每次插入询问串,查询的时候拿出来直接查,信息保留在节点上. #include <bits/stdc++.h> using namespace std; char s[51]; ...
- Trie树 - 字典树
1.1.什么是Trie树 Trie树,即字典树,又称单词查找树或键树,是一种树形结构.典型应用是用于统计和排序大量的字符串(但不仅限于字符串),所以经常被搜索引擎系统用于文本词频统计.它的优点是最大限 ...
随机推荐
- 在QuartusII 中使用tcl对工程进行复制——半自动
最近在看coyoo的博客,加上手上有一本coyoo老师的书籍.本人是脚本小白,怎么看都没有看懂这个自动化是怎么实现的. 先说我的半自动化,后面在说我对自动化的一点疑惑—— 目前没有实现 目录环境: 首 ...
- windows apache 配置多个服务 站点 Apache Service Monitor
把Apache安装为多个Window NT服务 ~~~ 可以在 services.msc中查看到1. 在DOS下跳到Apache安装目录里的bin目录(~~~或者用path命令 把apache的安装目 ...
- QT绘制半透明窗体(改写paintEvent,超级简单)
在派生类中重载QDialog的void paintEvent(QPaintEvent *)事件,在这个函数中加入以下代码 QPainter painter(this); QLinearGradi ...
- session 共享
目前大多数大型网站的服务器都采用了分布式的部署方式,但是session是在服务器端保存的,如果用户跳转到其他服务器的话,session就会丢失,于是就有了分布式系统的session共享问题. sess ...
- 字符串操作函数<string.h>相关函数strcpy,strcat,等源码。
首先说一下源码到底在哪里找. 我们在文件中包含<cstring>时,如果点击右键打开文档, 会打开cstring,我们会发现路径为: D:\Program Files\visual stu ...
- [置顶] ios 360度旋转效果demo
demo功能:用UIimageView实现360度旋转效果. demo说明:iPhone6.1 测试成功.主要代码在:FVImageSequence.m中.在touchesMoved事件中,通过替换U ...
- sharepoint 2013 附件控件FileUpload怎样检验是否为图片的方法
记录一下关于附件控件FileUpload怎样检验是否为图片的方法: function checkImg() { var fileObj =document.getElementById('<%= ...
- iOS 类别和扩展(Categories和Extensions)
分类(Category) 分类能够做到的事情主要是:即使在你不知道一个类的源码情况下,向这个类添加扩展的方法. 此外,分类能够保证你的实现类和其他的文件区分开. 1 #import “UI ...
- Krita 3.0 发布,KOffice 的图像处理器(刺激一下自己的神经)
Krita 3.0 发布了,经历了一年多的开发,动画功能被集成到Krita核心,改善了绘画功能,可及时预览绘画结果,该版本也是最新移植到QT的版本. 查看完整发布说明,可以点击这里. 下载地址: Wi ...
- php calling scope
昨天在Yaf交流群, 大草原同学批评我变懒了, Blog很久没更新了, 今天刚好有人在Segmentfalut上问了我一个问题, 我在微博上也做了简单的解答, 不过感觉一句话说不清楚, 就写篇blo ...