典型的Trie树, 算是复习一下字符串吧, 就是输入有点恶心,代码如下:

#include <cstdio>
#include <cstring>
#include <algorithm>using namespace std;
const int maxn = 500000+100;
struct Trie{bool isword;int next[26];char words[15];Trie(){memset(next, -1, sizeof(next));isword = false;}
}Root;
Trie node[maxn];
int n;void Insert(char *tar){Trie *head = &Root;char *s = tar;while(*tar!=' ') tar++;*tar='\0';tar++;while(*tar!='\0'){int id = *tar - 'a';if(head->next[id] == -1){head->next[id] = n++;}head = &node[head->next[id]];tar++;}head->isword = true;//printf("s = %s\n", s);strcpy(head->words, s);
}char *Search(char *tar)
{Trie *head = &Root;while(*tar){int id = *tar - 'a';if(head->next[id] == -1) return NULL;head = &node[head->next[id]];tar++;}if(head->isword) return head->words;else return NULL;
}char str[100];int main(){n = 0;while(gets(str)){bool kongge = false;int len = strlen(str);for(int i=0; i<len; i++) {if(str[i] == ' '){kongge = true;break;}}if(str[0]<'a'||str[0]>'z') continue;if(kongge) Insert(str);else {char *p = Search(str);if(p == NULL) printf("eh\n");else printf("%s\n", p);}}return 0;
}

转载于:https://www.cnblogs.com/xingxing1024/p/5285468.html

poj 2503 Trie树相关推荐

  1. poj 1816 trie树+dfs(强烈推荐,含有通配符的匹配)

    这个题目花了我一晚上才调出来,其实也不难,就是在trie树上搜索给定的单词,但是麻烦的一点是考虑的情况非常多,比如模式串可能重复,或者*?连续出现,最开始都没考虑,程序敲出来直接提交一看WA,然后看d ...

  2. POJ 2418 Hardwood Species(trie 树)

    题目链接 开始想用map的,字典序不会搞,还是老老实实的用trie树把.好久没写了,忘得差不多了. 1 #include <iostream> 2 #include <cstdio& ...

  3. poj 2945 Find the Clones 用trie树实现

    /*原来动态构树是这么费时间的...20000个单词最长为20个的题,跑到了1688MS,题目: 题目大概是说找出相同的字符串并且统计个数.分析: 因为昨天刚学完trie树,现在练了几道,有点感觉了, ...

  4. POJ - 2503

    POJ - 2503 这题用map做时有2100ms,而用字典树去做时360ms就过了. map的 字典树的: 下面是代码: 1 #include<iostream> 2 #include ...

  5. POJ3630——简单Trie树

    这个题的意思是说,给出一些字符串,判断是否有字符串是另一个字符串的前缀,当然可以用排序水过,不过这个题拿来练习一下Trie树不错. 这个题在poj的discuss上好多人说必须要静态建树,估计都是用了 ...

  6. usaco Cowxor (trie 树)

    没想到trie树还可以用在这上面,厉害厉害. [分析]这是字母树的经典应用.首先因为是求xor的最大值,可以用前缀和计算xor值,然后n^2枚举即可. [cpp] view plaincopy for ...

  7. 字符串匹配算法 -- AC自动机 基于Trie树的高效的敏感词过滤算法

    文章目录 1. 算法背景 2. AC自动机实现原理 2.1 构建失败指针 2.2 依赖失败指针过滤敏感词 3. 复杂度及完整代码 1. 算法背景 之前介绍过单模式串匹配的高效算法:BM和KMP 以及 ...

  8. 字符串匹配数据结构 --Trie树 高效实现搜索词提示 / IDE自动补全

    文章目录 1. 算法背景 2. Trie 树实现原理 2.1 Trie 树的构建 2.2 Trie树的查找 2.3 Trie树的遍历 2.4 Trie树的时间/空间复杂度 2.5 Trie 树 Vs ...

  9. 【bzoj3261】最大异或和 可持久化Trie树

    题目描述 给定一个非负整数序列 {a},初始长度为 N.        有M个操作,有以下两种操作类型: 1.A x:添加操作,表示在序列末尾添加一个数 x,序列的长度 N+1. 2.Q l r x: ...

最新文章

  1. 阿里巴巴为什么主推HSF?比Dubbo有哪些优势?
  2. Java - 自己动手之在线书店(2)
  3. linux虚拟地址被大量占用,《Linux中为什么要使用虚拟地址》
  4. javascript基本函数
  5. clocks_per_sec 时间不正确_你该拥有的不只是护肤品,还有正确护肤时间表
  6. python物理引擎模拟三体_一个物理引擎能不能模拟少量粒子之间的力?
  7. DHT11温湿度传感器模块使用方法和驱动代码实现
  8. C#的Bitmap.LockBits 使用说明
  9. QML Item 核心元素
  10. PAT 甲级 1118 Birds in Forest (25 分)
  11. Efficient Deep Embedded Subspace Clustering
  12. IT界招聘信息免费发布专用帖
  13. create Golang project with method
  14. Android系统安全 — 5.3-APK V2签名介绍
  15. html通过css来设置半透明背景
  16. mencoder 和ffmpeg常用命令
  17. 项目资源管理-日历图
  18. Java - 拷贝亿赛通项目
  19. ScrollView文字竖直滚动
  20. 如何构建基于 Web Excel 组件的指标补录平台

热门文章

  1. 李宏毅机器学习课程---2、Regression - Case Study
  2. 使用Canal实现redis和mysql的同步
  3. java EE : tomacat 基础
  4. 【leetcode】ZigZag Conversion
  5. 怎样学好C++ ----高手的话
  6. 照相机滤镜使用,优化解码和滤镜导致的预览卡屏现象
  7. 员工薪酬管理设计方案
  8. Re: 社团改革还让不让人活了?
  9. 韩国首尔公交车站将被指定为禁烟场所
  10. 导出sql文件_(一)SQL基本知识