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

字典树模板 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最近遇到一个难题,老 阅读详情
题目链接:点击进入
题目

在这里插入图片描述
在这里插入图片描述

思路

字典树,对于每个节点,记录一个以该节点为前缀的字符串数目 sum ,在插入的时候,每经过一个存在的节点,该节点 sum++ ,若该节点不存在,创建节点后,sum 赋初值 1

代码
// Problem: 统计难题
// Contest: Virtual Judge - HDU
// URL: https://vjudge.net/problem/HDU-1251
// Memory Limit: 131 MB
// Time Limit: 2000 ms
// 
// Powered by CP Editor (https://cpeditor.org)

//#pragma GCC optimize(3)//O3
//#pragma GCC optimize(2)//O2
#include<iostream>
#include<string>
#include<map>
#include<set>
//#include<unordered_map>
#include<queue>
#include<cstdio>
#include<vector>
#include<cstring>
#include<stack>
#include<algorithm>
#include<iomanip>
#include<cmath>
#include<fstream>
#define X first
#define Y second
#define best 131 
#define INF 0x3f3f3f3f3f3f3f3f
#define pii pair<int,int>
#define lowbit(x) x & -x
#define inf 0x3f3f3f3f
//#define int long long
//#define double long double
//#define rep(i,x,y) for(register int i = x; i <= y;++i)
using namespace std;
typedef long long ll;
typedef unsigned long long ull;
const double pai=acos(-1.0);
const int maxn=1e6+10;
const int mod=998244353;
const double eps=1e-9;
const int N=5e3+10;
/*--------------------------------------------*/
inline int read()
{
    int k = 0, f = 1 ;
    char c = getchar() ;
    while(!isdigit(c)){if(c == '-') f = -1 ;c = getchar() ;}
    while(isdigit(c)) k = (k << 1) + (k << 3) + c - 48 ,c = getchar() ;
    return k * f ;
}
/*--------------------------------------------*/

int n,m,tot;
struct node
{
	int sum;
	int next[26];
}t[maxn];
void insert(string str)
{
	int len=str.size(),p=0;
	for(int i=0;i<len;i++)
	{
		int to=str[i]-'a';
		if(t[p].next[to]==0)
		{
			t[p].next[to]=++tot;
			p=t[p].next[to];
			t[p].sum=1;
		}
		else
		{
			p=t[p].next[to];
			t[p].sum++;
		}
	}
}
int find(string str)
{
	int len=str.size(),p=0;
	for(int i=0;i<len;i++)
	{
		int to=str[i]-'a';
		if(t[p].next[to]==0)
			return 0;
		else
			p=t[p].next[to];
	}
	return t[p].sum;
}

int main() 
{
//	ios::sync_with_stdio(false);
//	cin.tie(0);cout.tie(0);
	string s;
	while(getline(cin,s))
	{
		if(s=="") break;
		insert(s);
	}
	while(cin>>s)
	{
		if(s=="") break;
		cout<<find(s)<<endl;
	}
    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; 阅读详情

相关推荐

测试用例经典练习之微信发红包测试用例

微信发红包测试用例

ZCYaiCLX3344的博客 1万+

HDU 1251:统计难题 ← 字典树(Trie树)

【算法分析】 字典树,又称Trie树、单词查找树,是用于字符串快速检索的多叉树。 其原理是利用字符串的公共前缀来减少查询时间,最大限度地减少无谓的字符串比较。 下文中的insert()、calPre()、query()、beginWith()函数,是字典树的经典函数。 在HDU 1251中,query()、beginWith()函数不需要,只是为了方便学习,将它们也写在代码里了。 另外,HDU 1251题目没有给出数据范围,但在调试代码时,发现数据范围至少要声明到10^6的范围才能通过。 特别需要说明的是,

hnjzsyjyj的专栏 858

MATLAB闪退别慌!5分钟搞定Windows系统预设文件修复(附详细截图)

本文针对MATLAB在Windows系统下频繁闪退的问题,提供了快速有效的解决方案。核心在于修复或重置损坏的MATLAB预设文件,通过图文并茂的五步法,指导用户定位AppData目录、重命名预设文件夹,从而让MATLAB自动生成全新配置以解决闪退。文章还涵盖了问题诊断、设置备份及进阶排查方法,帮助用户彻底根除启动故障。

weixin_29234423的博客 925

HDU_1251 统计难题 ( map解法 和 字典树 )

文章目录题意题解代码map解法字典树纪念一下暴力超时代码 ... 题目连接 题意 题解 代码 map解法 #include <bits/stdc++.h> using namespace std; #define rg register #define sc scanf #define pf printf int main ( ) { // freopen( "F:...

♡ 脚下的每一步都叫远方 ♡ 280

45个经典Linux面试题(非常详细)零基础入门到精通,收藏这一篇就够了

(文件系统分配其中的一些磁盘块用来记录它自身的一些数据,如 i 节点,磁盘分布图,间接块,超级块等。$ chmod 751 file 给 file 的属主分配读、写、执行(7)的权限,给 file 的所在组分配读、执行(5)的权限,给其他用户分配执行(1)的权限。linux命令’hash’管理着一个内置的哈希表,记录了已执行过的命令的完整路径, 用该命令可以打印出你所使用过的命令以及执行的次数。创建文件:典型的如 touch,vi 也可以创建文件,其实只要向一个不存在的文件输出,都会创建文件。

小陈的博客 2070

安装oracle 19c 报错INS-06006 INS-44000 INS-32070

数据库版本oracle 19c 操作系统版本:centos7.8 安装oracle19c RAC 配置互信的时候setup显示成功,点test的时候报错INS-44000,继续点yes 报错INS-32070,继续往下点 报错INS-06006 处理过程 1.手动ssh node date 全部成功说明互信时没有问题的 2.查mos 文档ID 2555697.1 如果OpenSSH升级到8.x会有这个问题 MOS上的解决办法 #ssh -V OpenSSH_8.0p1, OpenSSL 1.0.2r 2

cqszpx的博客 1528

【HDU - 1251 】统计难题 (map-两种写法)

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

m0_58245389的博客 174

ensp企业网综合实验(课程设计)

使用MSTP+VRRP技术实现负载均衡以及增加网络的可靠性;出口配置napt;所有用户均为自动获取IP地址;

qq_50829760的博客 1万+

HDU——1251 统计难题

题意:这次是中文自己看。 解题思路:xiangxi

u014086857的专栏 442

YOLOv12 改进 | Backbone改进 3

将CSP中的简单拼接改为可学习的特征选择门控,动态决定哪些特征流向下一层,同样再写这篇。:相比静态CSP的固定50/50分割,门控机制可学习0.3:0.7等最优比例。在输入端加入轻量SR模块,对下采样后的特征进行超分恢复,提升小目标检测能力。(小目标): 从 0.51 AP → 0.63 AP (+24%):采用ESPCN的高效亚像素卷积,避免传统插值的信息损失。:从通道级(SE)到空间级(Spatial)的多粒度控制。:结合浅层细节和深层语义,恢复小目标的纹理信息。

u012133341的博客 840

【Basis】Lumerical licence center 无法连接的问题

端口,我们需要确认该端口是否被其他程序占用。这里我们将介绍如何处理这一问题。后,今天电脑更新后我无法打开。终结占用该端口的程序后再次打开。

u011699626的博客 313

HDU 1251 统计难题 (字典树经典题目)

    http://acm.hdu.edu.cn/showproblem.php?pid=1251         题目大意: 中文题不解释       分析: 字典树模板题, 没有坑, 直接写就ok           AC代码: #include &lt;bits/stdc++.h&gt; #define mset(a, x) memset(a, x...

MM__1997的博客 458

用 SAP CDS View 和 Fiori Elements 快速打造 CRM Service Order 应用──十分钟跑通从数据模型到上线的全流程

通过CDS 视图 + Fiori Elements的组合,我们得以在极短时间内把传统 CRM Service Order 场景迁移到现代化的 Fiori 界面,而且代码量极小、可维护性高。若后续需要离线能力,可考虑将同一 OData 服务暴露给 Mobile Services,再配合 MDK 或 UI5 Mobile Toolkit;若要支持复杂审批流,则可以在同一 Launchpad 内嵌入 Process Visibility Dashboard,实现端到端可视化。

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 390

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

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

weixin_46283740的博客 374

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

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

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

dsaghjkye的博客 266

华为的C语言编程规范.pdf

华为技术有限公司内部技术规范。本规范制定了编写C语言程序的基本原则、规则和建议。从代码的清晰、简洁、可测试、安全、程序效率、可移植各个方面对C语言编程作出了具体指导。

hdu 1251 统计难题(字典树)

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

不慌不忙、不急不躁 719

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

hdu 1251 统计难题 字典树

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

woshinannan的专栏 461

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

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

xiang_hehe的博客 254

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

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

weixin_30622107的博客 109

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

hdu 1251 统计难题 (字典树)

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

ンZee的解题报告 1314

HDU 1251 统计难题 【字典树】

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

Joeferyの博客 496

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 统计难题【字典树】

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

程序员充电站(itcharge) 1199

HDU1251-统计难题 【字典树】

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

独钓门前月 413
上一篇: P1558 色板游戏 -( 线段树 )
下一篇: P2580 于是他错误的点名开始了 - ( 字典树 )
Cosmic_Tree
博客等级 码龄7年 134粉丝 337原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值