Message Flood SDUT

来源:互联网 发布:企业秀软件 编辑:程序博客网 时间:2024/05/23 14:57

Message Flood

Time Limit: 1500ms   Memory limit: 65536K  有疑问?点这里^_^

题目描述

Well, how do you feel about mobile phone? Your answer would probably be something like that "It's so convenient and benefits people a lot". However, If you ask Merlin this question on the New Year's Eve, he will definitely answer "What a trouble! I have to keep my fingers moving on the phone the whole night, because I have so many greeting message to send!" Yes, Merlin has such a long name list of his friends, and he would like to send a greeting message to each of them. What's worse, Merlin has another long name list of senders that have sent message to him, and he doesn't want to send another message to bother them Merlin is so polite that he always replies each message he receives immediately). So, before he begins to send message, he needs to figure to how many friends are left to be sent. Please write a program to help him. Here is something that you should note. First, Merlin's friend list is not ordered, and each name is alphabetic strings and case insensitive. These names are guaranteed to be not duplicated. Second, some senders may send more than one message to Merlin, therefore the sender list may be duplicated. Third, Merlin is known by so many people, that's why some message senders are even not included in his friend list.

输入

There are multiple test cases. In each case, at the first line there are two numbers n and m (1<=n,m<=20000), which is the number of friends and the number of messages he has received. And then there are n lines of alphabetic strings(the length of each will be less than 10), indicating the names of Merlin's friends, one per line. After that there are m lines of alphabetic strings, which are the names of message senders. The input is terminated by n=0.

输出

For each case, print one integer in one line which indicates the number of left friends he must send.

示例输入

5 3InkfishHenryCarpMaxJerichoCarpMaxCarp0

示例输出

3


裸的字典树,只不过利用标记一个单词的结束,并且一个人不能多次的发信息,故还有另一标记变量。

#include <bits/stdc++.h>#include<ctype.h>using namespace std;struct node{    int next[30];    int bj,j;}q[5000000];int top,e;char s[1000];int cs(){    memset(q[top].next,-1,sizeof(q[top].next));    q[top].bj=0;    q[top].j=0;    return top++;}void bu(int k,char s[]){    int i,j,l;    l=strlen(s);    for(i=0;i<l;i++)    {        s[i]=tolower(s[i]);        j=s[i]-'a';        if(q[k].next[j]==-1)        {            q[k].next[j]=cs();        }        k=q[k].next[j];    }    q[k].bj=1;}int lo(int k,char s[]){    int i,j,l;    l=strlen(s);    for(i=0;i<l;i++)    {        s[i]=tolower(s[i]);        j=s[i]-'a';        if(q[k].next[j]==-1)        {            return 0;        }        k=q[k].next[j];    }    if(q[k].bj==1)    {        if(q[k].j==0)        {            e++;            q[k].j++;        }    }    return q[k].bj;}int main(){    int n,m,i,k;    while(cin>>n&&n)    {        top=e=0;        cin>>m;        k=cs();        for(i=0;i<n;i++)        {            cin>>s;            bu(k,s);        }        for(i=0;i<m;i++)        {            cin>>s;            lo(k,s);        }        cout<<n-e<<endl;    }    return 0;} 



0 0
原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 左肾泥沙样结石怎么办 双肾泥沙样结石怎么办 温州市民卡丢了怎么办 上眼皮过敏肿了怎么办 上眼皮又痒又肿怎么办 上眼皮红肿痛是怎么办 上眼皮肿的厉害怎么办 眼皮肿了还痒痒怎么办 眼睛被手指戳到怎么办 打球眼睛撞肿了怎么办 打球时眼睛被戳怎么办 狗眼睛被打充血怎么办 一只眼睛磨的慌怎么办 5个月宝宝结膜炎怎么办 金毛眼屎多白色怎么办 金毛眼红有眼屎怎么办 狗狗眼睛上火了怎么办 狗上火了眼屎多怎么办 金毛走路扭腰怎么办 金毛流鼻涕微黄怎么办 狗狗下眼皮红了怎么办 金毛眼睛打肿了怎么办 金毛的眼睛红怎么办 眼睛干涩有红血丝怎么办 小孩子眼睛红有眼屎怎么办 狗狗的肉垫粗糙怎么办 狗狗眼睛变蓝色怎么办 脸被太阳晒伤了怎么办 皮肤晒伤红肿痒怎么办 3岁儿童频繁眨眼怎么办 狗狗的眼睛红肿怎么办 脸过敏发红怎么办不痒 上眼皮红肿痒是怎么办 眼睛痒了几天了怎么办 眼睛肿了还痒怎么办 孩子脸上有红血丝怎么办 脸上长了红血丝怎么办 指甲受创出血了怎么办 手指被挤压紫了怎么办 眼睛撞了有淤血怎么办 下眼底有小白点怎么办