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

#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)字典树的更多相关文章

  1. STL 之map解决 Message Flood(原字典树问题)

                                                                                      Message Flood Time ...

  2. Luogu P2922 [USACO08DEC]秘密消息Secret Message 字典树 Trie树

    本来想找\(01Trie\)的结果找到了一堆字典树水题...算了算了当水个提交量好了. 直接插入模式串,维护一个\(Trie\)树的子树\(sum\)大小,求解每一个文本串匹配时走过的链上匹配数和终点 ...

  3. [BZOJ1590] [Usaco2008 Dec]Secret Message 秘密信息(字典树)

    传送门 看到前缀就要想到字典树! 看到前缀就要想到字典树! 看到前缀就要想到字典树! #include <cstdio> #include <iostream> #define ...

  4. poj 2503:Babelfish(字典树,经典题,字典翻译)

    Babelfish Time Limit: 3000MS   Memory Limit: 65536K Total Submissions: 30816   Accepted: 13283 Descr ...

  5. SDUT1500 Message Flood

    以前做过的用的字典树,可是貌似现在再用超内存....求解释... 问了LYN用的map函数做的,又去小小的学了map函数.... http://wenku.baidu.com/view/0b08cec ...

  6. POJ 1451 - T9 - [字典树]

    题目链接:http://bailian.openjudge.cn/practice/1451/ 总时间限制: 1000ms 内存限制: 65536kB 描述 Background A while ag ...

  7. 数据结构~trie树(字典树)

    1.概述 Trie树,又称字典树,单词查找树或者前缀树,是一种用于快速检索的多叉树结构,如英文字母的字典树是一个26叉树,数字的字典树是一个10叉树. 我理解字典树是看了这位大佬博客.还不了解字典树的 ...

  8. zoj1109-Language of FatMouse 【字典树】

    http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemId=109 Language of FatMouse Time Limit: 10 S ...

  9. HDU1298 字典树+dfs

    T9 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)Total Submissi ...

随机推荐

  1. UVA 10120 - Gift?!(搜索+规律)

     Problem D. Gift?!  The Problem There is a beautiful river in a small village. N rocks are arranged ...

  2. Git学习之Git 暂存区

    ============================= 修改文件后是否可以直接提交 ============================ (1) 向文件中追加一行内容  $ echo &quo ...

  3. sea.js常用接口

    seajs.config 用来对 Sea.js 进行配置. seajs.config({ // 指定需要使用的插件 plugins: ['text', 'shim'], // 设置别名,方便调用 al ...

  4. 使用Phoenix通过sql语句更新操作hbase数据

    hbase 提供很方便的shell脚本,可以对数据表进行 CURD 操作,但是毕竟是有一定的学习成本的,基本上对于开发来讲,sql 语句都是看家本领,那么,有没有一种方法可以把 sql 语句转换成 h ...

  5. Android 线程与主线程

    网络连接需要时间.Web服务器可能需要1~2秒的时间来响应,文件下载则耗时更久.考虑到这个因素,Android禁止任何主线程网络连接行为.即使强行为之,Android也会抛出NetworkOnMain ...

  6. java(2) 面向对象

    1.类的封装 *在定义一个类时,将类中的属性私有化,即使用prviate关键字来修饰,私有属性只能在它所在的类中被访问.为了能让外界访问私有属性,需要提供一些使用public修饰的公有方法,其中包括用 ...

  7. 如何将Ubuntu左边的面板放到底部

    直入主题,有些人不喜欢ubuntu默认的面板在左边(笔者就是~囧~),我还是喜欢将面板放入到桌面的底部,这样更符合自己的使用习惯,但是ubuntu默认是不支持的,需要通过配置工具来配置. 这个时候我们 ...

  8. 你可能不知道的shell、bash二三事(Centos 7)

    个人.bashrc: ~/.bashrc: # .bashrc # User specific aliases and functions alias rm='rm -i' alias cp='cp ...

  9. iOS - WKWebView那些坑

    WKWebView 是苹果在 WWDC 2014 上推出的新一代 webView 组件,用以替代 UIKit 中笨重难用.内存泄漏的 UIWebView.WKWebView 拥有60fps滚动刷新率. ...

  10. openstack 部署(Q版)-----glance镜像服务安装配置

    一.创建数据库 CREATE DATABASE glance; GRANT ALL PRIVILEGES ON glance.* TO '; GRANT ALL PRIVILEGES ON glanc ...