hdu 1251 字典树的简单应用
是一道字典树的简单应用,群里面组织的专题练习,又做了一遍,比较简单,属于字典树的入门题。。。。。。。。题目:
统计难题
Time Limit: 4000/2000 MS (Java/Others) Memory Limit: 131070/65535 K (Java/Others)
Total Submission(s): 7637 Accepted Submission(s): 2974
注意:本题只有一组测试数据,处理到文件结束.
ac代码:
#include <iostream>
#include <cstdio>
#include <string.h>
#include <string>
#include <malloc.h>
using namespace std;
struct Tire{int count;Tire *tire[26];
}*a;
void init(){a=(Tire *)malloc(sizeof(Tire));for(int i=0;i<26;++i)a->tire[i]=NULL;
}
void insert(char ch[]){int len=strlen(ch);Tire *head=a;for(int i=0;i<len;++i){int k=ch[i]-'a';if(head->tire[k]!=NULL){head=head->tire[k];head->count++;}else{head->tire[k]=new Tire;head=head->tire[k];head->count=1;for(int j=0;j<26;++j)head->tire[j]=NULL;}}
}
int find(char ch[]){int len=strlen(ch);Tire *head=a;int i,k;for(i=0;i<len;++i){k=ch[i]-'a';if(head->tire[k]==NULL){return 0;}else{head=head->tire[k];}}return head->count;
}
int main(){char s[10],ss[10];init();int len,num=0;while(gets(s)){len=strlen(s);if(len==0)break;insert(s);}while(gets(ss)){num=find(ss);printf("%d\n",num);}return 0;
}
转载于:https://www.cnblogs.com/javaspring/archive/2011/10/12/2656453.html
hdu 1251 字典树的简单应用相关推荐
- hdu 1251 字典树,指针版
这题内存需求很大,我用静态数组写的trie总MLE,看discuss说50w的数组才过,但我一开50w的就MLE了啊--想不通 这是链表版的trie,1个case,所以也不用考虑内存释放什么的 #in ...
- HDU 1800(字典树)
简单的字典树水题,统计为单词前缀的单词数,取最大,注意要去前0,具体原理还是自己想想吧,最大数决定了最大分组. 诶 PKU月赛之后 我发现我只会水的 .............. #include&l ...
- hdu 4099 字典树 + 斐波那契
题意: 给你一个串(最长40位)问你这个串是斐波那契F(n) n <= 99999中的那个数的前缀,如果存在多个输出最小的n否则输出-1. 思路: 给的串最长40位,那 ...
- hdu 1298 字典树 + DFS (模拟T9文本输入)
题意: 给你一些按键顺序,让你输出每一步中概率最大的那个单词,这里的概率计算方 法好好看看别弄错了,一开始就是因为弄错了,各种wa,比如 abc 1 ,ab 1,那么 ab 的概率就是2 ...
- Prefix HDU - 5790 字典树 + 主席树
传送门 文章目录 题意: 思路: 题意: 给你nnn个串,每次询问一个区间,返回这个区间的串的不同的前缀个数,强制在线. 思路: 碰到字符串前缀的问题,我们自然的想到用字典树来解决. 对于每个串,我们 ...
- HDU 5536 字典树
题意:就是公式. 这现场赛O(n^3)能过,觉得太没天理了. 做法:字典树,枚举两个数,然后在字典树上贪心的跑. #include <bits/stdc++.h>using namespa ...
- HDU 5687 字典树入门
Problem C Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 131072/131072 K (Java/Others) Tota ...
- hdu 1247 字典树
题意:给你一部分单词,让你找出所有这样的单词:a+b=c,就是一个单词,由另外两个单词串联而成 解题思路:先输入全部单词,构建一棵tire树,然后枚举所有单词,对单词进行查找,查找过程中经过的单词节点 ...
- HDU 1251(trie树)
统计难题 Time Limit: 4000/2000 MS (Java/Others) Memory Limit: 131070/65535 K (Java/Others) Total Subm ...
- 字典树与双数组字典树总结
字典树 字典树比较简单,本质是一个DFA(define finite automata. 具体可 关键词搜索leetcode trie tree 双向数组字典树 参考文献: http://www.do ...
最新文章
- 利用构造函数进行简化类初始化
- 14.grafana导入导出;Grafana的安装和Influxdb数据源配置
- ***K近邻Survey-Distance总结
- 自己用java实现飞鸽传书 2 - 实现文件传输
- 如何使用ITEXTSHARP将HTML代码字符串写进PDF
- 重读《JAVA与模式》之二
- OpenXml开发-向文档中添加样式
- 阿铭Linux_网站维护学习笔记201903029
- hadoop基础【Shuffle全部流程、OutputFormat输出、ReduceJoin案例实操】
- 人工智能 —— 归结演绎推理
- 热重启golang服务器(graceful restart golang http server)
- threejs-自定义着色器材质
- 为什么没有好用的Android游戏引擎?
- 多尺度动态图卷积神经网络----Multi-scale Dynamic Graph Convolutional Network for Hyperspectral Image Classificati
- Java 的 IDEA 神级插件!
- 谢国忠:下一场金融风暴将在6月左右开始
- 为Nextcloud中的视频文件配置缩略图
- PHPStudy后门事件分析
- EndNote文献悬挂缩进的设置方法及设置参考文献序号后面空格长度
- 预约活动(秒杀)项目中如何高效的保证下单交易成功?保证redis,mysql的最终一致性?