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 3
Inkfish
Henry
Carp
Max
Jericho
Carp
Max
Carp
0
 1 #include<stdio.h>
2 #include<string.h>
3 #include<stdlib.h>
4 void strUpr( char *str )//转换小写为大写的函数,本题目这是关键点
5 {
6 int i, len = strlen(str);
7
8 for ( i = 0; i < len; i++ )
9 {
10 if( str[i] <= 'z' && str[i] >= 'a' )
11 str[i] = str[i] - 'a' + 'A';
12 }
13 }
14 void sort(char a[][20],int l,int r)
15 {
16 char x[20];
17 strcpy(x,a[l]);
18 int i=l,j=r;
19 if(l>=r)return ;
20 while(i<j)
21 {
22 while(i<j&&strcmp(a[j],x)>=0)j--;
23 strcpy(a[i],a[j]);
24 while(i<j&&strcmp(a[i],x)<=0)i++;
25 strcpy(a[j],a[i]);
26 }
27 strcpy(a[i],x);
28 sort(a,l,i-1);
29 sort(a,i+1,r);
30 }
31 int binsearch(char a[][20],int s,int t,char key[])
32 {
33 int low=s,high=t,mid;
34 if(s<=t)
35 {
36 mid=low+(high-low)/2;
37 if(strcmp(a[mid],key)==0)
38 return mid;
39 if(strcmp(a[mid],key)>0)
40 return binsearch(a,low,mid-1,key);
41 else
42 return binsearch(a,mid+1,high,key);
43 }
44 return -1;
45 }
46 int main()
47 {
48 int m;
49 while(scanf("%d",&m)&&m!=0)
50 {
51 char f[20001][20],g[20001][20];
52 if(m==0)break;
53 else
54 {
55 int sum=0;//sum1为了标记重复元素的个数
56 int n;
57 scanf("%d",&n);
58 int i;
59 for(i=0;i<=m-1;i++)
60 {
61 scanf("%s",f[i]);
62 strUpr(f[i]);
63 }
64 for(i=0;i<=n-1;i++)
65 {
66 scanf("%s",g[i]);
67 strUpr(g[i]);
68 }
69 sort(g,0,n-1);//快速排序
70 for(i=0;i<=m-2;i++)
71 {
72 if(strcmp(f[i],f[i+1])!=0)//相邻元素不相同,去重操作
73 {
74 if(binsearch(g,0,n-1,f[i])!=-1)//找到
75 sum=sum+1;
76 }
77 //else continue;//相邻元素相同的话,不操作,进入下一次循环
78 }
79 //补上最后一个元素的特判
80 if(binsearch(g,0,n-1,f[i])!=-1)//找到了的话
81 sum=sum+1;
82 printf("%d\n",m-sum);
83 }
84 }
85 return 0;
86 }

Message Flood的更多相关文章

  1. Sicily 1194. Message Flood

    题目地址:1194. Message Flood 思路: 不区分大小写,先全部转化为小写,用stl提供的函数做会很方便. 具体代码如下: #include <iostream> #incl ...

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

                                                                                      Message Flood Time ...

  3. SDUT1500 Message Flood

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

  4. sdut Message Flood(c++ map)

    用字典树没过,学习了一下map; 参考博客:http://blog.csdn.net/zhengnanlee/article/details/8962432 AC代码 #include<iost ...

  5. Message Flood(map)

    http://acm.sdut.edu.cn:8080/vjudge/contest/view.action?cid=203#problem/D 以前用字典树做过 #include <strin ...

  6. oj1500(Message Flood)字典树

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

  7. SDUT 1500-Message Flood(set)

    Message Flood Time Limit: 1500ms   Memory limit: 65536K  有疑问?点这里^_^ 题目描写叙述 Well, how do you feel abo ...

  8. Eclipse 4.2 failed to start after TEE is installed

    ---------------  VM Arguments---------------  jvm_args: -Dosgi.requiredJavaVersion=1.6 -Dhelp.lucene ...

  9. 浅谈原始套接字 SOCK_RAW 的内幕及其应用(port scan, packet sniffer, syn flood, icmp flood)

    一.SOCK_RAW 内幕 首先在讲SOCK_RAW 之前,先来看创建socket 的函数: int socket(int domain, int type, int protocol); domai ...

随机推荐

  1. mysql 字符集设置方法

    php 5.6,mysql 5.5/etc/my.cnf (1) 最简单的修改方法,就是修改mysql的my.ini文件中的字符集键值, 如 default-character-set = utf8c ...

  2. NOIP2015 斗地主

    Sol 暴力搜索...不用搜1,2张的情况,直接统计出来就可以了. 还有处理一下2和大王小王的位置,扔到最后面或者最前面就可以了. 搜索就搜 3+3,2+2+2,1+1+1+1+1 这三个就可以了. ...

  3. Implement a TextView with an animation in its left side

    In my case, I want to write a TextView with an animation in its left side. ImageView + TextView coul ...

  4. Extjs 组件共用(单例)问题

    说明: 将store初始化在类定义时便创建, store实例将成为该类的单例 代码: 测试: 说明: 将store初始化放入initComponent函数中.  每次都将创建一个新的实例. 代码: 测 ...

  5. 获取Spring容器Bean

    WebApplicationContext wac = ContextLoader.getCurrentWebApplicationContext(); ManageResolver mr = (Ma ...

  6. centos查找未挂载磁盘格式化并挂载

    查看当前linux服务器分区 df -h 查看当前linux服务器硬盘: fdisk -l /dev/sda   第一块硬盘 /dev/sdb   第二块硬盘 依此类推 以/dev/sdb为新增硬盘为 ...

  7. centos7.0改变用户创建目录组权限

    centos7.0改变用户创建目录组权限可通过umask进行设置. 临时改变可通过umask命令进行设置 永久性改变,可通过修改~/.bash_profile的方式进行调整.

  8. java学习笔记--IO流

    第十二章大纲: I/O input/output 输入/输出 一.创建文件,借助File类来实现 file.createNewFile() : 创建文件 file.exists() : 判断文件是否存 ...

  9. perl文件句柄的传递

    perl 返回文件句柄的2种方式 1.使用 \* #!/usr/bin/perl use strict; sub openfile() { my $path=shift; open(FILE,&quo ...

  10. 移动端设页面根目录HTML的字体大小

    @media (max-width: 359px){ html { font-size: 62.5%; }}@media (min-width: 360px) and (max-width: 374p ...