题目:http://acm.sdut.edu.cn/sdutoj/problem.php?action=showproblem&problemid=1500

View Code

 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树)相关推荐

  1. sdut 1500 Message Flood

    一道简单的Trie树,好长时间没写过了,手生了,wA了好几次... Message Flood Time Limit:1500MS  Memory Limit:65536K Total Submit: ...

  2. oj1500(Message Flood)字典树

    大意:输入几个字符串,然后再输入几个字符串,看第一次输入的字符串有多少没有在后面的字符串中出现(后输入的字符串不一定出现在之前的字符串中) #include <stdio.h> #incl ...

  3. BZOJ 1590.Secret Message 秘密信息(Trie树) [Usaco2008 Dec]【BZOJ计划】

    整理的算法模板合集: ACM模板 点我看算法全家桶系列!!! 实际上是一个全新的精炼模板整合计划 BZOJ简单题合集x Weblink https://hydro.ac/d/bzoj/p/1590 P ...

  4. Trie 树内存消耗问题

    大家都知道,Trie树(又称字典树)是一种树型数据结构,用于保存大量的字符串.它的优点是:利用字符串的公共前缀来节约存储空间. 相对来说,Trie树是一种比较简单的数据结构,比较易于理解.话说上帝是公 ...

  5. Trie树(字典树)详细知识点及其应用

    Trie,又经常叫前缀树,字典树等等.它有很多变种,如后缀树,Radix Tree/Trie,PATRICIA tree,以及bitwise版本的crit-bit tree.当然很多名字的意义其实有交 ...

  6. wikioi 1306 机智Trie树

    题目描写叙述 Description 看广播操无聊得非常~你有认为吗?在看广播操一波又一波的人潮涌过再退去.认为非常没意思--于是,偶们的大神犇JHT发明了一个及其好玩的游戏~ 把每一班级的队形看成一 ...

  7. usaco Cowxor (trie 树)

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

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

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

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

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

最新文章

  1. Linux期末复习题库(4)
  2. tcpdump 抓取icmp数据包
  3. pyhton3 适配器模式编写
  4. CentOS 6.0安装JDK7
  5. Sr Software Engineer - Big Data Team
  6. Think in Java第四版 读书笔记4第九章第十章
  7. JProfiler 解决 Java 服务器的性能跟踪
  8. 浅谈n个球和m个盒子之间的乱伦关系
  9. 线程库 c语言实现,130行C语言实现个用户态线程库——后续(一)
  10. 计算机人力资源试题及答案,计算机二级word练习题一题目及答案.
  11. paip.分布式应用系统java c#.net php的建设方案
  12. 三星手机android,个人评测 篇三:三星S10e还值得买吗——半年使用杂谈,最终篇...
  13. linux备份目录命令tar,Linux中使用tar命令备份与还原数据
  14. iOS开发之颜色渐变
  15. 第 5 章 数据结构
  16. python代码画樱花带图片_python编程——pygame画樱花树
  17. 开发板------OK6410
  18. SQL 如何得到两个日期间的工作日(附假期表)
  19. C/C++——vector的基本操作总结
  20. 组队学习-动手学数据分析-第二章第2、3节

热门文章

  1. eclipse fat jar 打包插件
  2. 此版本的 SQL Server 不支持用户实例登录标志。该连接将关闭“的解决
  3. 好程序员分享24个canvas基础知识小结 1
  4. JavaFX 已从 JDK 中独立拆分,早期预览版开放下载
  5. golang for switch break 使用
  6. Genesis-3D新手入门——19.UI美化
  7. 从北京77元房租,说说关于房子的事
  8. 对话框式activity
  9. Gridview创建行列 合并列、行类
  10. String(+) vs StringBuffer(append)