字典树模板题(统计难题 HDU - 1251)
https://vjudge.net/problem/HDU-1251
标准的字典树模板题:
也注意一下输入方法:
#include<iostream>
#include<cstdio>
#include<cstring>
using namespace std;
const int maxn = ;
struct node
{
int num;
node *next[maxn];
}; //字典树
class Tree{
public:
node *head;
//构造函数
Tree()
{
head = New();
}
//创建一个新节点
node* New()
{
node *p = new node();
for (int i = ; i < maxn; ++i)
{
p->next[i] = NULL;
}
p->num = ;
return p;
}
//插入一个字符串
void insert(char *str)
{
int len = strlen(str);
node *t, *p = head;
for (int i = ; i < len; ++i)
{
int c = str[i] - 'a';
if (p->next[c] == NULL)
{
t = New(); //创建新的节点
p->next[c] = t;
}
p = p->next[c];
p->num++;
}
}
int find(char *str)
{
node *p = head;
int len = strlen(str);
for (int i = ; i < len; ++i)
{
int c = str[i] - 'a';
if (p->next[c] == NULL)
return ; //不存在这样的字符串
p = p->next[c];
}
return p->num;
}
};
int main()
{
char s[];
Tree tree;
while (cin.getline(s, ))
{
if (strlen(s) == || strcmp(s, " ") == )break; //判断是是否为空行
tree.insert(s);
}
while (~scanf("%s", s))
{
printf("%d\n", tree.find(s));
}
}
字典树模板题(统计难题 HDU - 1251)的更多相关文章
- (字典树模板)统计难题--hdu--1251
链接: http://acm.hdu.edu.cn/showproblem.php?pid=1251 在自己敲了一遍后终于懂了,这不就用了链表的知识来建立了树,对!就是这样的,然后再查找 代码: #i ...
- HDU 1251 统计难题(字典树模板题)
http://acm.hdu.edu.cn/showproblem.php?pid=1251 题意:给出一些单词,然后有多次询问,每次输出以该单词为前缀的单词的数量. 思路: 字典树入门题. #inc ...
- HDU - 1251 字典树模板题
Ignatius最近遇到一个难题,老师交给他很多单词(只有小写字母组成,不会有重复的单词出现),现在老师要他统计出以某个字符串为前缀的单词数量(单词本身也是自己的前缀). Input输入数据的第一部 ...
- CH 1601 - 前缀统计 - [字典树模板题]
题目链接:传送门 描述给定 $N$ 个字符串 $S_1,S_2,\cdots,S_N$,接下来进行 $M$ 次询问,每次询问给定一个字符串 $T$,求 $S_1 \sim S_N$ 中有多少个字符串是 ...
- HDU 2072 - 单词数 - [(有点小坑的)字典树模板题]
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2072 Problem Descriptionlily的好朋友xiaoou333最近很空,他想了一件没有 ...
- trie树模板(统计难题)
统计难题 Time Limit: 4000/2000 MS (Java/Others) Memory Limit: 131070/65535 K (Java/Others)Total Submi ...
- AC日记——统计难题 hdu 1251
统计难题 Time Limit: 4000/2000 MS (Java/Others) Memory Limit: 131070/65535 K (Java/Others)Total Submi ...
- P1184 高手之在一起(字典树模板题,hash算法, map)
哎,唯一值得说明的是,这道题的输入有bug 先把字典树的算法模板放一下 #include<iostream> #include<cstring> using namespace ...
- (模板)hdoj1251(字典树模板题)
题目链接:https://vjudge.net/problem/HDU-1251 题意:给定一系列字符串之后,再给定一系列前缀,对每个前缀查询以该字符串为前缀的字符串个数. 思路: 今天开始学字典树, ...
随机推荐
- 常用的NoSQL数据库类型简述
一.文档存储类型(Document Stores) 文档存储,也称为面向文档的数据库系统,其主要特点在于它们的无模式的数据组织. 特点: 1.记录数据不需要具有统一的结构,即不同的记录可以具有不同的列 ...
- java中Map集合的理解
Map |--Hashtable:底层是哈希表数据结构,不可以存入null键null值.该集合是线程同步的.jdk1.0.效率低. |--HashMap:底层是哈希表数据结构,允许使用 null 值和 ...
- Intellij Idea乱码解决方案
使用Intellij Idea经常遇到的三种乱码问题: 1.工程代码乱码 2.main方法运行,控制台乱码 3.tomcat运行,控制台乱码 解决方案: 1.工程代码乱码 Settings > ...
- Script error.深度测试
Script error.全面解析中我们介绍了Script error.的由来.这篇博客,我们将各种情况(不同浏览器.本地远程托管JS文件)考虑进去,进行一个深度的测试,为读者带来一个全面的了解. G ...
- JavaScript异步和单线程
一,同步和异步的区别: 同步会阻塞代码执行,而异步不会.(比如alert是同步,setTimeout是异步) 二,前端使用异步的场景: 1,定时任务:setTimeout,setInterval 2, ...
- loadrunner 场景设计-负载生成器管理
场景设计-负载生成器管理 by:授客 QQ:1033553122 1 简介 当执行一个场景时,Controller把场景中的每个用户配到负载生成器(Load generator). 所谓的负载生成器 ...
- 《数据库系统概念》1-数据抽象、模型及SQL
DBMS(database-management system)包括数据库和用于存取数据的程序,DBMS的基本目标是为数据的存取提供方便.高效的方式,此外对大多数企业来说,数据是非常重要的,所以DB ...
- Java集合之TreeMap源码分析
一.概述 TreeMap是基于红黑树实现的.由于TreeMap实现了java.util.sortMap接口,集合中的映射关系是具有一定顺序的,该映射根据其键的自然顺序进行排序或者根据创建映射时提供的C ...
- vue axios 发送post请求,后端接收参数为null
1首先检查自己的传参方式是否正确,我是传一个对象,没有问题,接口也触发了 2查了下资料说是 Content-Type的问题,设置为 'application/x-www-form-urlencod ...
- Kotlin入门(1)搭建Kotlin开发环境
Kotlin做为一门编程语言,已经出现好几年了,但此前在国内并不闻名.自从5月份谷歌宣布它成为Android的官方开发语言之后,Kotlin猛然窜红了,虽说短期内Kotlin无法取代Java,但对于一 ...