sdut 1500 Message Flood(Trie树)
题目:http://acm.sdut.edu.cn/sdutoj/problem.php?action=showproblem&problemid=1500
1 #include<iostream> 2 #include<cstdio> 3 #include<cstring> 4 #include<stdlib.h> 5 using namespace std; 6 struct node 7 { 8 int flag; 9 node *next[26]; 10 }; 11 int num; 12 node *build() 13 { 14 node *p; 15 int i; 16 p=new node; 17 p->flag=0; 18 for(i=0;i<26;i++) 19 p->next[i]=NULL; 20 return p; 21 } 22 void insert(node *p, char *s) 23 { 24 int len,i,t; 25 len=strlen(s); 26 for(i=0;i<len;i++) 27 { 28 if(s[i]>='A'&&s[i]<='Z') 29 t=s[i]-'A'; 30 else 31 t=s[i]-'a'; 32 if(p->next[t]==NULL) 33 p->next[t]=build(); 34 p=p->next[t]; 35 } 36 p->flag=1; 37 } 38 int search(node *p,char *s) 39 { 40 int t,i,len; 41 len=strlen(s); 42 for(i=0;i<len;i++) 43 { 44 if(s[i]>='A'&&s[i]<='Z') 45 t=s[i]-'A'; 46 else 47 t=s[i]-'a'; 48 if(p->next[t]==NULL) 49 return 0; 50 p=p->next[t]; 51 } 52 if(p->flag==1) 53 { 54 num++; 55 p->flag=-1; 56 return 1; 57 } 58 return 0; 59 } 60 void deal(node *p) 61 { 62 int i; 63 if(p) 64 { 65 for(i = 0 ;i < 26 ; i++) 66 if(p->next[i]) 67 deal(p->next[i]); 68 } 69 free(p); 70 p=NULL; 71 } 72 int main() 73 { 74 int m,n,i,k; 75 char str[25]; 76 node *p; 77 while(~scanf("%d",&m)) 78 { 79 if(m==0) 80 break; 81 scanf("%d",&n); 82 p=build(); 83 num=0; 84 for(k=1;k<=m;k++) 85 { 86 scanf("%s",str); 87 insert(p,str); 88 } 89 while(n--) 90 { 91 scanf("%s",str); 92 search(p,str); 93 } 94 printf("%d\n",m-num); 95 deal(p); 96 } 97 return 0; 98 }
转载于:https://www.cnblogs.com/wanglin2011/archive/2012/08/13/2636974.html
sdut 1500 Message Flood(Trie树)相关推荐
- sdut 1500 Message Flood
一道简单的Trie树,好长时间没写过了,手生了,wA了好几次... Message Flood Time Limit:1500MS Memory Limit:65536K Total Submit: ...
- oj1500(Message Flood)字典树
大意:输入几个字符串,然后再输入几个字符串,看第一次输入的字符串有多少没有在后面的字符串中出现(后输入的字符串不一定出现在之前的字符串中) #include <stdio.h> #incl ...
- BZOJ 1590.Secret Message 秘密信息(Trie树) [Usaco2008 Dec]【BZOJ计划】
整理的算法模板合集: ACM模板 点我看算法全家桶系列!!! 实际上是一个全新的精炼模板整合计划 BZOJ简单题合集x Weblink https://hydro.ac/d/bzoj/p/1590 P ...
- Trie 树内存消耗问题
大家都知道,Trie树(又称字典树)是一种树型数据结构,用于保存大量的字符串.它的优点是:利用字符串的公共前缀来节约存储空间. 相对来说,Trie树是一种比较简单的数据结构,比较易于理解.话说上帝是公 ...
- Trie树(字典树)详细知识点及其应用
Trie,又经常叫前缀树,字典树等等.它有很多变种,如后缀树,Radix Tree/Trie,PATRICIA tree,以及bitwise版本的crit-bit tree.当然很多名字的意义其实有交 ...
- wikioi 1306 机智Trie树
题目描写叙述 Description 看广播操无聊得非常~你有认为吗?在看广播操一波又一波的人潮涌过再退去.认为非常没意思--于是,偶们的大神犇JHT发明了一个及其好玩的游戏~ 把每一班级的队形看成一 ...
- 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 ...
最新文章
- Linux期末复习题库(4)
- tcpdump 抓取icmp数据包
- pyhton3 适配器模式编写
- CentOS 6.0安装JDK7
- Sr Software Engineer - Big Data Team
- Think in Java第四版 读书笔记4第九章第十章
- JProfiler 解决 Java 服务器的性能跟踪
- 浅谈n个球和m个盒子之间的乱伦关系
- 线程库 c语言实现,130行C语言实现个用户态线程库——后续(一)
- 计算机人力资源试题及答案,计算机二级word练习题一题目及答案.
- paip.分布式应用系统java c#.net php的建设方案
- 三星手机android,个人评测 篇三:三星S10e还值得买吗——半年使用杂谈,最终篇...
- linux备份目录命令tar,Linux中使用tar命令备份与还原数据
- iOS开发之颜色渐变
- 第 5 章 数据结构
- python代码画樱花带图片_python编程——pygame画樱花树
- 开发板------OK6410
- SQL 如何得到两个日期间的工作日(附假期表)
- C/C++——vector的基本操作总结
- 组队学习-动手学数据分析-第二章第2、3节
热门文章
- eclipse fat jar 打包插件
- 此版本的 SQL Server 不支持用户实例登录标志。该连接将关闭“的解决
- 好程序员分享24个canvas基础知识小结 1
- JavaFX 已从 JDK 中独立拆分,早期预览版开放下载
- golang for switch break 使用
- Genesis-3D新手入门——19.UI美化
- 从北京77元房租,说说关于房子的事
- 对话框式activity
- Gridview创建行列 合并列、行类
- String(+) vs StringBuffer(append)