HDU1251(静态维护字典树模板题)
来源:互联网 发布:sql注入攻击登录 编辑:程序博客网 时间:2024/05/17 06:25
字典树入门还是很简单了,30分钟就差不多可以手撕动态维护的板子了。但是这个题用动态维护字典树会MLE,几乎网上所有动态维护的都TLE了。可怕,就算释放也会(虽然只有一次建树,释不释放一个样子)。于是继续学习静态维护字典树。其实静态维护就是用数组模拟建树,答题思路类似链式前向星。
静态维护的时候还要注意数组开的大小,一开始大方100万数字,MLE。84000K,题目要求65535K
别太大方,50万就可以了。
code:
#include<stdio.h>#include<string.h>#include<math.h>#include<algorithm>#include<iostream>#include<string>#include <set>#include<time.h>using namespace std;#define ll long long#define mem(a) memset(a,0,sizeof(a))const double eps=1e-8;const int maxn=500010;//ÐëÌîдconst int inf=0x3f3f3f3f;int tree[maxn][26];int tim[maxn];int cnt;void init(){ mem(tree); cnt=0;}void inst(char str[]){ int len=strlen(str); int index=0; for(int i=0;i<len;i++) { int num=str[i]-'a'; if(tree[index][num]==0) { tree[index][num]=++cnt; } index=tree[index][num]; tim[index]++; }}int treefind(char str[]){ int len=strlen(str); int index=0; for(int i=0;i<len;i++) { int num=str[i]-'a'; if(tree[index][num]==0) return 0; index=tree[index][num]; } return tim[index];}int main(){ init(); char str[20]; int res; while(gets(str)&&strcmp(str,"")!=0) { inst(str); } while(scanf("%s",str)!=EOF) { res=treefind(str); printf("%d\n",res); } return 0;}
阅读全文
0 0
- HDU1251(静态维护字典树模板题)
- 字典树模板题&hdu1251
- hdu1251 字典树trie 模板题
- hdu1251-统计难题-字典树模板题
- hdu1251统计难题-字典树模板题
- 字典树模板(HDU1251)
- 字典树模板(hdu1251)
- 统计难题 hdu1251 静态版字典树
- HDU1251 统计难题(字典树模板)
- HDU1251统计难题(字典树模板)
- hdu1251(map用法/字典树模板)
- 字典树模板 hdu1251统计难题
- HDU1251——统计难题(字典树模板)
- HDU1251 字典树模版体,基础题
- HDU1251字典树
- hdu1251 字典树
- hdu1251之字典树
- hdu1251(字典树)
- 题目49:开心的小明
- [总结]----Hive创建表格的几种方式
- 程序员把妹从入门到精通(一)
- bzoj1977 [BeiJing2010]次小生成树 Tree(kruskal+树上倍增)
- LED_1_1(流水灯)
- HDU1251(静态维护字典树模板题)
- c++设计一个分数类。要求:1.分类包含的分数运算有:连个分数的加、减、乘、除运算。
- 51NOD 1952 栈 【单调队列】
- 计算组合数的几种方法
- 真真感受到了c语言的古老!
- [总结]----Hive数据导入 六种方式
- 【Python】【matplotlib】绘图
- 测试工程师之bug的定位
- cocos2dx luabinding C/C++/LUA部分