hdu 1251 字典树,指针版
这题内存需求很大,我用静态数组写的trie总MLE,看discuss说50w的数组才过,但我一开50w的就MLE了啊……想不通
这是链表版的trie,1个case,所以也不用考虑内存释放什么的
#include<cstdio>
#include<cstring>
#include<cstdlib>
using namespace std;
struct trie
{struct trie *son[26];int n;
}*root;
inline int idx(char &a)
{return a-'a';
}
void insert(char *s)
{int i,j;struct trie *c,*newnode;c=root;for(i=0;s[i];i++){if(c->son[idx(s[i])]!=0){c=c->son[idx(s[i])];c->n++;}else{newnode=(struct trie *)malloc(sizeof(struct trie));for(j=0;j<26;j++) newnode->son[j]=0;c->son[idx(s[i])]=newnode;c=newnode;c->n=1;}}
}
int find(char *s)
{int i;int len;struct trie *c;len=strlen(s);if(len==0) return 0;c=root;for(i=0;i<len;i++){if(c->son[idx(s[i])]!=0){c=c->son[idx(s[i])];}else return 0;}return c->n;
}
int main()
{char a[11];int i;root=(struct trie *)malloc(sizeof(struct trie));for(i=0;i<26;i++) root->son[i]=0;root->n=0;while(gets(a),strcmp(a,"")!=0)insert(a);while(gets(a)!=0)printf("%d\n",find(a));return 0;}
hdu 1251 字典树,指针版相关推荐
- HDU 5687 字典树入门
Problem C Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 131072/131072 K (Java/Others) Tota ...
- 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 1800(字典树)
简单的字典树水题,统计为单词前缀的单词数,取最大,注意要去前0,具体原理还是自己想想吧,最大数决定了最大分组. 诶 PKU月赛之后 我发现我只会水的 .............. #include&l ...
- HDU 5536 字典树
题意:就是公式. 这现场赛O(n^3)能过,觉得太没天理了. 做法:字典树,枚举两个数,然后在字典树上贪心的跑. #include <bits/stdc++.h>using namespa ...
- 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 ...
- Tri树(字典树JAVA版)联想输入法所用的数据结构
又到了快复试的时候了.遥想去年此时,心情忐忑不安,复试机试差点挂掉.当时考的是,联想输入法,想想都恐怖.这段时间写算法,顺便把那个给写了.也算最后纪念一下我的考研.我爱新学校,我也爱我的同学和老师,我 ...
最新文章
- 【算法学习】堆排序建立最大堆
- kafka存储机制与读写流程
- IgniteMe debug 寒假逆向生涯(2/100)
- Linux配置基础命令
- java trim all,[JAVA中各种去除空格][java string.trim()][str.replaceAll去空格]
- java.util.list e_E remove()
- PHP:打造一个无限极评论模块
- salt把返回写入到mysql
- python3socket非阻塞在linux里无效_利用Python中SocketServer实现客户端与服务器间非阻塞通信方法介绍...
- spring-kafka广播模式配置_交换机为什么要划分vlan?交换机如何配置
- Python批量移动文件到指定目录
- think-cell 加载项在 Office 出现故障后消失,怎么解决?
- 用Python 计算t分布的置信区间
- Android 适配深色模式
- 腾讯觅影正式对外开放,可用AI进行医学图像分析和辅助诊疗
- 电子设计(1)二极管防电源反接电路
- 20P42 500个LUTs创意旅行VLOG时尚婚礼人物环境复古特殊INS电影调色预设+25个复古老电影VHS特效
- js算法---寻找连续数组中的缺失数
- ADT: Graph 图
- 微信视频服务器能保存多久,微信视频动态保存多久(微信背景视频只能一天吗)...
热门文章
- redis linux工具安装,linux 安装redis缓存工具
- 已经安装mysql xampp_windows 7 本机已安装mysql5的情况上 安装XAMPP
- python 设计简易计算器_python小项目——实现简易的计算器
- Leetcode杯 第三题解答(动态规划)
- Selenium 凭什么成为 Web 自动化测试的首选?(内附源码)
- php验证码一直验证错误,织梦输入正确验证码登录却一直显示错误的解决方法
- python开发效率怎样提高_python 提高开发效率的5个小技巧
- idea运行maven:No URLs will be polled as dynamic configuration sources
- ubuntu下的常见12个命令---欢迎补充
- python编辑excel文件_python自动化之修改excel(包括xls文件和xlsx文件)