oj1500(Message Flood)字典树
大意:输入几个字符串,然后再输入几个字符串,看第一次输入的字符串有多少没有在后面的字符串中出现(后输入的字符串不一定出现在之前的字符串中)
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
typedef struct Node
{
int flag;
struct Node *next[26];
}Node,*Tree;
char a[20010][20];
int n,m;
void Creat(Tree &T)
{
int i;
T=(Tree)malloc(sizeof(Node));
T->flag=0;
for(i=0;i<26;i++)
T->next[i]=NULL;
}
void insert(Tree &T,char *s)
{
int l,i,t;
Tree p=T;
l=strlen(s);
for(i=0;i<l;i++)
{
if(s[i]>='a'&&s[i]<='z')
t=s[i]-'a';
else t=s[i]-'A';
if(p->next[t]==NULL)
Creat(p->next[t]);
p=p->next[t];
}
p->flag=1;
}
int search(Tree T,char *s)
{
Tree p=T;
int i,k,t;
k=strlen(s);
for(i=0;i<k;i++)
{
if(s[i]>='A'&&s[i]<='Z')
t=s[i]-'A';
else
t=s[i]-'a';
if(p->next[t]==NULL)
return 0;
p=p->next[t];
}
if(p->flag)
{
return 1;
}
else return 0;
}
void Delete(Node *p)
{
int i;
for(i=0; i<26; i++)
{
if(p->next[i]!=NULL)
Delete(p->next[i]);
}
free(p);
}
int main()
{
int i,j,sum;
char str[20];
Tree T;
while(scanf("%d",&n)!=EOF&&n!=0)
{
Creat(T);
sum=0;
scanf("%d",&m);
for(i=0;i<n;i++)
scanf("%s",a[i]);
for(i=1;i<=m;i++)
{
scanf("%s",str);
insert(T,str);
}
for(i=0;i<n;i++)
{
j=search(T,a[i]);
if(j)
sum++;
}
printf("%d\n",n-sum);
Delete(T);
}
return 0;
}
oj1500(Message Flood)字典树的更多相关文章
- STL 之map解决 Message Flood(原字典树问题)
Message Flood Time ...
- Luogu P2922 [USACO08DEC]秘密消息Secret Message 字典树 Trie树
本来想找\(01Trie\)的结果找到了一堆字典树水题...算了算了当水个提交量好了. 直接插入模式串,维护一个\(Trie\)树的子树\(sum\)大小,求解每一个文本串匹配时走过的链上匹配数和终点 ...
- [BZOJ1590] [Usaco2008 Dec]Secret Message 秘密信息(字典树)
传送门 看到前缀就要想到字典树! 看到前缀就要想到字典树! 看到前缀就要想到字典树! #include <cstdio> #include <iostream> #define ...
- poj 2503:Babelfish(字典树,经典题,字典翻译)
Babelfish Time Limit: 3000MS Memory Limit: 65536K Total Submissions: 30816 Accepted: 13283 Descr ...
- SDUT1500 Message Flood
以前做过的用的字典树,可是貌似现在再用超内存....求解释... 问了LYN用的map函数做的,又去小小的学了map函数.... http://wenku.baidu.com/view/0b08cec ...
- POJ 1451 - T9 - [字典树]
题目链接:http://bailian.openjudge.cn/practice/1451/ 总时间限制: 1000ms 内存限制: 65536kB 描述 Background A while ag ...
- 数据结构~trie树(字典树)
1.概述 Trie树,又称字典树,单词查找树或者前缀树,是一种用于快速检索的多叉树结构,如英文字母的字典树是一个26叉树,数字的字典树是一个10叉树. 我理解字典树是看了这位大佬博客.还不了解字典树的 ...
- zoj1109-Language of FatMouse 【字典树】
http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemId=109 Language of FatMouse Time Limit: 10 S ...
- HDU1298 字典树+dfs
T9 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Total Submissi ...
随机推荐
- Delphi应用程序的调试(十)调试器选项
可在两个级别上设置调试选项:工程级和环境级.在前面的讲解中讲解了工程级调试选项,通过主菜单[Project | Options…]打开如下对话框: 可在Debugger Options对话框中设置全局 ...
- 法律&道德
西弗森是美国加州一名95岁的老妇人,2010年12月份的一天,她在家清理房间,当她翻开一叠纸的时候,一本书从里面掉了下来,她弯腰拾起来,发现是一本名叫<水上飞机独自飞>的书,再一看书页里的 ...
- LinQ实战学习笔记(二) C#增强特性
C# 为支持LINQ添加了许多语言特性: 隐式类型局部变量 对象初始化器 Lambda表达式 扩展方法 匿名类型 了解这些新特性是全面了解LINQ的重要先解条件,因此请不要忽视它们. (一) 隐式类 ...
- redhat vi 命令
转载:http://www.cnblogs.com/zhanglong0426/archive/2010/10/07/1845268.html http://blog.sina.com.cn/s/bl ...
- [原]git的使用(二)---工作区和暂存区
接着上篇 git的使用(一) http://www.cnblogs.com/horizonli/p/5323363.html 6.工作区和暂存区(中转站) 工作区(Working Directory) ...
- Telnet是什么意思又是什么协议 Telnet有什么作用及功能
Telnet是teletype network的缩写,专业的说,Telnet是Internet上远程登录的一种程序:它可以让您的电脑通过网络登录到网络另一端的电脑上,甚至还可以存取那台电脑上的文件. ...
- VI 你不知道的事
1G 顶部 G 底部 ctrl+F 前进 ctrl+B 后退 /text 向前搜索 ?text 向后搜索 I i 插入字符串 a 光标后插入字符 A 跳到句末尾 wq 写入并退出 h k j l ...
- Docker监控:google/cadvisor
Docker自带了容器监控功能,可以对容器进行相关的性能监控,指标查看 主要包括: 主机的CPU情况和使用量 主机的内存情况和使用量 主机的本地镜像情况 主机的容器运行情况 常规使用docker ps ...
- Android - dhroid 开发框架
extends:http://www.eoeandroid.com/thread-326973-1-1.html 开源中国地址:http://www.oschina.net/p/dhroid 开源项目 ...
- IIS7.5 配置虚拟目录的经历
好多网站为了不带上什么端口号所有就建立虚拟目录的试来使用80端口 iis6设置都没有问题可到了7.5碰到了点问题 原来7.5上有个:添加应用程序和添加虚拟目录.还有个转换为应用程序 直接把网站建成虚拟 ...