HDU1251 统计难题(字典树)

字典树模板 hdu1251统计难题 统计难题 Time Limit: 4000/2000 MS (Java/Others)    Memory Limit: 131070/65535 K (Java/Others) Total Submission(s): 41407    Accepted Submission(s): 14930 Problem Description Ignatius最近遇到一个难题,老 阅读详情


Problem Description
Ignatius最近遇到一个难题,老师交给他很多单词(只有小写字母组成,不会有重复的单词出现),现在老师要他统计出以某个字符串为前缀的单词数量(单词本身也是自己的前缀).
 

Input
输入数据的第一部分是一张单词表,每行一个单词,单词的长度不超过10,它们代表的是老师交给Ignatius统计的单词,一个空行代表单词表的结束.第二部分是一连串的提问,每行一个提问,每个提问都是一个字符串.

注意:本题只有一组测试数据,处理到文件结束.
 

Output
对于每个提问,给出以该字符串为前缀的单词的数量.
 

Sample Input
banana band bee absolute acm ba b band abc
 

Sample Output
2 3 1 0
 

#include<iostream>
#include<cstdio>
#include<cstring>
#include<algorithm>
#include<cmath>
#include<queue>
#include<stack>
#include<vector>
#include<set>
#include<map>

#define L(x) (x<<1)
#define R(x) (x<<1|1)
#define MID(x,y) ((x+y)>>1)

#define eps 1e-8
typedef __int64 ll;

using namespace std;

#define N 27

struct  node{
  int num;
  node *nest[N];
} ;

node *root;
int ans;

void inint()
{
	int i,j;
	root=(node *)malloc(sizeof(node));
	root->num=0;
	for(i=0;i<N;i++)
		root->nest[i]=NULL;
}

void inset(char *c)
{
    node * cur=root;
    while(*c)
	{
		if(cur->nest[*c-'a']==NULL)
		{
			node *temp=(node*)malloc(sizeof(node));
			for(int i=0;i<N;i++)
				temp->nest[i]=NULL;
			temp->num=0;
			cur->nest[*c-'a']=temp;
		}
		cur=cur->nest[*c-'a'];
		cur->num+=1;
		c++;
	}
}

void seach(char *c)
{
	int i,j;
	node *cur=root;
	int len=strlen(c);

	for(i=0;i<len;i++)
	{
		if(cur->nest[c[i]-'a']==NULL)
			return ;

		cur=cur->nest[c[i]-'a'];

	}
	ans+=cur->num;
}

int main()
{
	int i,j;
	char c[N];
	inint();
	while(gets(c))
	{
		if(!c[0]) break;
		inset(c);
	}

	while(~scanf("%s",c))
	{
		ans=0;
		seach(c);
		printf("%d\n",ans);
	}
	return 0;
}






[字典树 ]hdu 1251 统计难题 /** [字典树 ]hdu 1251 统计难题 统计前缀出现次数 */ #include #include #define N 1000000 struct tireTree { int cnt; tireTree *child[26]; }tt[N],*spt; void insert(char *s,tireTree *&rt) { tireTree *loc; 阅读详情

相关推荐

YOLOv5实战:无人机巡检图片差异对比与违建标记(附完整代码)

本文详细介绍了如何利用YOLOv5目标检测技术实现无人机巡检图片差异对比与违建标记。通过图像对齐、目标检测、差异分析和可视化标记四个步骤,构建高效的违建识别系统,显著提升城市管理效率。文章包含完整代码实现和性能优化技巧,为计算机视觉在无人机巡检中的应用提供实用指南。

weixin_42535720的博客 280

HDU 1251 统计难题 字典树Trie模板

HDU 1251 统计难题 这是一道字典树Trie模板题,记录下来以便以后复习时使用。 Ignatius最近遇到一个难题,老师交给他很多单词(只有小写字母组成,不会有重复的单词出现),现在老师要他统计出以某个字符串为前缀的单词数量(单词本身也是自己的前缀). [输入] 输入数据的第一部分是一张单词表,每行一个单词,单词的长度不超过10,它们代表的是老师交给Ignatius统计的单词,一个空行代表单词表的结束.第二部分是一连串的提问,每行一个提问,每个提问都是一个字符串. 注意:本题只有一组测试数据,处理到文

weixin_46283740的博客 374

Mac OS X 工具技巧:一文搞定个性化命令行窗口(iTerm2 + zsh + oh-my-zsh 配置Powerline风格)

本不想写这篇文章的,因为在Linux下已经配置过很多次,想着mac应该找篇文章一次就搞定了,结果还是踩坑,看了很多文章,不是某一点没不清楚,就是截图有问题或者命令有问题,官网又难得找等等……花了3个多小时才搞定,所以,还是来总结一篇文章就能够搞定的教程。 为什么要用zsh?用了这么多年的bash,不能说bash不好,不过当我用了zsh后发现,什么叫更好用。 配置过程稍微有点繁琐,但是你看过效果...

mickjoust的技术小屋 1万+

HDU - 1251 统计难题 (字典树)

Ignatius最近遇到一个难题,老师交给他很多单词(只有小写字母组成,不会有重复的单词出现),现在老师要他统计出以某个字符串为前缀的单词数量(单词本身也是自己的前缀). Input输入数据的第一部分是一张单词表,每行一个单词,单词的长度不超过10,它们代表的是老师交给Ignatius统计的单词,一个空行代表单词表的结束.第二部分是一连串的提问,每行一个提问,每个提问都是一个字符串. 注意:本题只...

dsaghjkye的博客 266

告别Vysor!用Scrcpy在Mac上无线投屏安卓手机(附魅族16th闪退修复实战)

本文详细介绍了如何在Mac上配置和使用开源投屏工具Scrcpy,实现安卓手机无线投屏的高效解决方案。从基础环境准备到高级功能调优,包括无线连接配置、输入控制增强、多设备管理和性能优化等实用技巧,特别针对魅族16th等机型的闪退问题提供了修复方案,帮助用户彻底告别Vysor等商业软件。

weixin_28712661的博客 394

示波器学习(一):示波器的作用、类型和基本结构

示波器的作用、使用场景;示波器的类型和基本结构介绍

qq_41300605的博客 9139

hdu 1251 统计难题(字典树)

题目链接:hdu 1251 统计难题 题目大意:略。 解题思路:字典树水题,插入单个单词的时候,对路径上的节点+1,查询时返回最后落到节点的计数。 #include #include #include using namespace std; const int maxn = 1000005; const int sigma_size = 26; struct Tire

不慌不忙、不急不躁 719

DDR3性能优化实战:如何用Xilinx MIG控制器实现800MHz稳定读写(7系列FPGA版)

本文深入探讨了在Xilinx 7系列FPGA上使用MIG控制器实现DDR3存储器800MHz稳定高速读写的实战优化技巧。文章聚焦于高级时序调优、Bank Machine调度策略、用户接口设计优化以及利用ILA进行信号完整性调试,旨在帮助工程师突破性能瓶颈,实现接近理论峰值的稳定带宽,并为进一步冲刺更高频率提供进阶调参指南。

seed的博客 775

hdu 1251 统计难题 字典树

传送门:hdu1251统计难题 中文题目不做过多的解释解题思路已经接近于字典树的模板题目,每次把字典中的单词加入到树里面。 先是要创建这棵树, 1. 线定义结构体,先看我们定义的结构体typedef struct Trie{ int v; Trie *next[26]; }Trie; 创建字典树函数,字典树的创建如下图:, 这个图对应的过程就是, 首先是一个根节点,他是所有

woshinannan的专栏 461

支持向量机算法之鸢尾花特征分类【机器学习】

支持向量机(SVM)是一种二元分类模型。它的基本模型是在特征空间中定义最大区间的线性分类器,这使它不同于感知器;支持向量机还包括核技术,这使得它本质上是一个非线性分类器。支持向量机的学习策略是区间最大化,它可以形式化为求解凸二次规划的问题,等价于正则化铰链损失函数的最小化。支持向量机的学习算法是求解凸二次规划的优化算法。Scikit learn(sklearn)是机器学习中常见的第三方模块。它封装了常见的机器学习方法,包括回归、降维、分类、聚类等。实例的特征向量(以2D为例)映射到空间中的一些点,如下图中的

一键难忘的博客 4970

【华为OD机试】创建二叉树(python, java, c++, js)

请按下列描达构建一颗二叉树,并返回该树的根节点: 1、先创建值为-1的根结点,根节点在第0层; 2、然后根据operations依次添加节点: operations[i] = [height, index] 表示对第 height 层的第index 个节点node, 添加值为i 的子节点: 若node 无「左子节点」。则添加左子节点; 若node 有「左子节点」但无「右子节点」,则添加右子节点: 否则不作任何处理。 height、index 均从0开始计数;index 指所在层的创建顺序。

A_D_I_D_A_S的博客 188

基于Spring Boot的实验室安全考试系统设计与部署实践

在高校和企业实验室管理中,安全考试是保障人员安全的重要环节。传统纸质考试在出题、监考、批改等环节效率低下,数字化考试系统成为提升考核效率与可信度的有效手段。Spring Boot作为Java生态中主流的开发框架,凭借自动装配、内置容器和快速部署等特性,为构建中小型业务系统提供了稳定高效的技术基础。本文从需求分析、技术选型、核心模块设计到打包部署,系统阐述如何基于Spring Boot实现实验室安全考试系统,涵盖题库管理、随机组卷、在线答题、自动判分、成绩统计等关键功能,并总结开发过程中遇到的典型问题与解决思

weixin_34284188的博客 337

SCTPPortScan SCTP协议端口扫描、关联地址识别、传输状态检测

Windows:Winsock2+SCTP扩展)。- **SCTP API封装**:Linux下直接调用`socket()`、`connect()`、`getsockopt()`等系统函数,解析`struct sctp_status`和`struct sctp_paddrinfo`获取状态和关联地址。qDebug() << "开始SCTP扫描:" << ipList.size() << "个IP," << ports.size() << "个端口,共" << m_totalTasks << "个任务";

寒寒豆豆软件公司的博客 91

HDU1251——统计难题【字典树】

HDU1251——统计难题 大致思路:我们可以让字典树的节点记录每一个节点的出现的次数,然后在我们查找的过程中直接查找最后一个字符对应的节点的次数即可。 #include &lt;algorithm&gt; #include &lt;cstdio&gt; #include &lt;cstring&gt; #include &lt;iostream&gt; using namespace s...

xiang_hehe的博客 254

SIMATIC S7-1200, S7-1500 PID 控制[手册]

SIMATIC S7-1200, S7-1500 PID 控制[手册]

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

hdu 1251 统计难题 (字典树入门题)

1 /******************************************************* 2 题目: 统计难题 (hdu 1251) 3 链接: http://acm.hdu.edu.cn/showproblem.php?pid=1251 4 算法: 字典树 5 提示: 这题压要用c++提交,G++会超内存 6 **********...

weixin_30622107的博客 109

IMSL CNL 7.0.0 (x86-64)Crack

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

hdu1251 统计难题 字典树

hdu 1251 统计难题   字典树的解释及模板   背下来..     #include using namespace std; struct trie { int num; bool isword; trie *child[26]; trie() { for(int i=0;i<26;i++) child[i]=0; num=0;isword=0; } }

Time flies 924

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

hdu 1251 统计难题 (字典树)

题目链接:   hdu 1251 题目大意:   给出单词的词典,然后有限次询问                   每次询问给出的字符在词典中作为前缀的次数 解题思路:   建立词典的字典树                   用w标记此结点在建树过程中访问的次数,每经过一次就+1                   查询时把查询的字符遍历字典树,遍历最后结点的w值既是答案

ンZee的解题报告 1314

HDU 1251 统计难题 【字典树】

Description Ignatius最近遇到一个难题,老师交给他很多单词(只有小写字母组成,不会有重复的单词出现),现在老师要他统计出以某个字符串为前缀的单词数量(单词本身也是自己的前缀).  Input 输入数据的第一部分是一张单词表,每行一个单词,单词的长度不超过10,它们代表的是老师交给Ignatius统计的单词,一个空行代表单词表的结束.第二部分是一连

Joeferyの博客 496

HDU1251 统计难题【字典树】

题目大意: 给你一张单词表,每个单词占一行,以空行结束。再给你几个单词前缀。那么问题来了: 统计出单词表中以所给单词前缀为前缀的单词数目。 思路: 其实就是字典树的模板应用。根据所给单词表建立一个字典树,并记录所有前缀的个数。 然后根据所给单词前缀去字典树中查找是否含有这个前缀。找到就输出该前缀的个数。

程序员充电站(itcharge) 1199

HDU 1251 统计难题 字典树大水题

今天刚看的字典树, 就RE了一发, 字典树原理还是很简单的, 唯一的问题就是不知道一维够不够用, 就开的贼大, 这真的是容易MLE的东西啊, 赶紧去学优化吧。 HDU-1251统计难题 这道题唯一的问题就是会不会字典树, 2333, 给一个字典树的博客传送门, 话说这个博客一搜就搜到了啊. 代码: 1 #include<bits/stdc++.h> 2...

dengpangbu3703的博客 117

统计难题 【 HDU - 1251 】【 字典树 】

 统计难题  HDU - 1251  简单字典树。 #include &lt;iostream&gt; #include &lt;string.h&gt; using namespace std; struct node { int num; struct node *next[26]; node(){ for(int i = 0; i &lt;...

Mercury_Lc的博客 409

HDU1251-统计难题 【字典树】

Ignatius最近遇到一个难题,老师交给他很多单词(只有小写字母组成,不会有重复的单词出现),现在老师要他统计出以某个字符串为前缀的单词数量(单词本身也是自己的前缀). Input 输入数据的第一部分是一张单词表,每行一个单词,单词的长度不超过10,它们代表的是老师交给Ignatius统计的单词,一个空行代表单词表的结束.第二部分是一连串的提问,每行一个提问,每个提问都是一个字符串. 注...

独钓门前月 413

HDU 1251 统计难题(字典树模板)

统计难题 Time Limit: 4000/2000 MS (Java/Others)    Memory Limit: 131070/65535 K (Java/Others) Total Submission(s): 38305    Accepted Submission(s): 14058 Problem Description Ignatius最近遇到一个难题,老

Usher_Ou的博客 482

HDU 1251统计难题(字典树)

HDU 1251统计难题(字典树) Time Limit: 4000/2000 MS (Java/Others) Memory Limit: 131070/65535 K (Java/Others)Total Submission(s): 52010 Accepted Submission(s): 18240 Problem Description Ignatius最近遇到一个难...

博学 笃志 切问 近思 305

【字典树】HDU1251统计难题

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1251 用的是指针,指针不懂的就得好好先稍微懂一点指针在来轻松搞定; 这个博客写的还不错,可以推荐看一下。链接:http://www.cnblogs.com/tanky_woo/archive/2010/09/24/1833717.html #include #include #include #

wlxsq的专栏 1200

hdu1251:统计难题 字典树经典

题目链接:https://vjudge.net/problem/HDU-1251 题目:hdu 1251:统计难题(字典树,经典题) 统计难题 Time Limit: 4000/2000 MS (Java/Others) Memory Limit: 131070/65535 K (Java/Others) Total Submission(s): 16905 Accepted Subm...

蜡笔小新冲鸭!!! 176
上一篇: HDU1671 Phone List(字典树)
下一篇: HDU2444 The Accomodation of Students(二分匹配 匈牙利算法)
左眼皮跳跳~
博客等级 码龄13年 17粉丝 400原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值