poj 2503 Trie树
典型的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树相关推荐
- poj 1816 trie树+dfs(强烈推荐,含有通配符的匹配)
这个题目花了我一晚上才调出来,其实也不难,就是在trie树上搜索给定的单词,但是麻烦的一点是考虑的情况非常多,比如模式串可能重复,或者*?连续出现,最开始都没考虑,程序敲出来直接提交一看WA,然后看d ...
- POJ 2418 Hardwood Species(trie 树)
题目链接 开始想用map的,字典序不会搞,还是老老实实的用trie树把.好久没写了,忘得差不多了. 1 #include <iostream> 2 #include <cstdio& ...
- poj 2945 Find the Clones 用trie树实现
/*原来动态构树是这么费时间的...20000个单词最长为20个的题,跑到了1688MS,题目: 题目大概是说找出相同的字符串并且统计个数.分析: 因为昨天刚学完trie树,现在练了几道,有点感觉了, ...
- POJ - 2503
POJ - 2503 这题用map做时有2100ms,而用字典树去做时360ms就过了. map的 字典树的: 下面是代码: 1 #include<iostream> 2 #include ...
- POJ3630——简单Trie树
这个题的意思是说,给出一些字符串,判断是否有字符串是另一个字符串的前缀,当然可以用排序水过,不过这个题拿来练习一下Trie树不错. 这个题在poj的discuss上好多人说必须要静态建树,估计都是用了 ...
- usaco Cowxor (trie 树)
没想到trie树还可以用在这上面,厉害厉害. [分析]这是字母树的经典应用.首先因为是求xor的最大值,可以用前缀和计算xor值,然后n^2枚举即可. [cpp] view plaincopy for ...
- 字符串匹配算法 -- AC自动机 基于Trie树的高效的敏感词过滤算法
文章目录 1. 算法背景 2. AC自动机实现原理 2.1 构建失败指针 2.2 依赖失败指针过滤敏感词 3. 复杂度及完整代码 1. 算法背景 之前介绍过单模式串匹配的高效算法:BM和KMP 以及 ...
- 字符串匹配数据结构 --Trie树 高效实现搜索词提示 / IDE自动补全
文章目录 1. 算法背景 2. Trie 树实现原理 2.1 Trie 树的构建 2.2 Trie树的查找 2.3 Trie树的遍历 2.4 Trie树的时间/空间复杂度 2.5 Trie 树 Vs ...
- 【bzoj3261】最大异或和 可持久化Trie树
题目描述 给定一个非负整数序列 {a},初始长度为 N. 有M个操作,有以下两种操作类型: 1.A x:添加操作,表示在序列末尾添加一个数 x,序列的长度 N+1. 2.Q l r x: ...
最新文章
- 阿里巴巴为什么主推HSF?比Dubbo有哪些优势?
- Java - 自己动手之在线书店(2)
- linux虚拟地址被大量占用,《Linux中为什么要使用虚拟地址》
- javascript基本函数
- clocks_per_sec 时间不正确_你该拥有的不只是护肤品,还有正确护肤时间表
- python物理引擎模拟三体_一个物理引擎能不能模拟少量粒子之间的力?
- DHT11温湿度传感器模块使用方法和驱动代码实现
- C#的Bitmap.LockBits 使用说明
- QML Item 核心元素
- PAT 甲级 1118 Birds in Forest (25 分)
- Efficient Deep Embedded Subspace Clustering
- IT界招聘信息免费发布专用帖
- create Golang project with method
- Android系统安全 — 5.3-APK V2签名介绍
- html通过css来设置半透明背景
- mencoder 和ffmpeg常用命令
- 项目资源管理-日历图
- Java - 拷贝亿赛通项目
- ScrollView文字竖直滚动
- 如何构建基于 Web Excel 组件的指标补录平台