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. mac 搭建APK反编译环境[转]

    APKtool 用途:获取mainifest.xml res等资源文件 下载:http://ibotpeaches.github.io/Apktool/install/ 使用:apktool d te ...

  2. COGS 2188. [HZOI 2015] Math 题解

      题目描述: 给定n个数X1-Xn,求下面式子的值(整数部分): n<=107,xi<=109且互不相同. 分析: 其实一开始看见这道题我也吓傻了,k这么大,再说我又是数论鶸渣,打死也不 ...

  3. python tkinter用Treeview实现ListView效果

    先上图 再上代码: import ttk from Tkinter import * root = Tk() tree = ttk.Treeview(root, columns=('col1','co ...

  4. 2016.07.09 offsetWidth 和一个问题。

    javascript 中 offsetWidth 是对象的可见宽度,包滚动条等边线,会随窗口的显示大小改变 clientWidth.offsetWidth.clientHeight区别 IE6.0.F ...

  5. 【Unity3D】使用鼠标键盘控制Camera视角(即时战略类游戏视角):缩近,拉远,旋转

    今天写一个demo,要用到鼠标键盘控制三维视角,因此写了个脚本用于控制. 该脚本可以用于即时战略类游戏的视角,提供了缩进,拉伸,旋转.同时按住鼠标右键不放,移动鼠标可以实现第一人称视角的效果. usi ...

  6. 如何限制一个类只在堆上分配和栈上分配(StackOnly HeapOnly)

    [本文链接] http://www.cnblogs.com/hellogiser/p/stackonly-heaponly.html [题目] 如何限制一个类只在堆上分配和栈上分配? [代码]  C+ ...

  7. 禁用visual studio实时调试器

    最近每次开机时都会出来一个visual Studio实时调试器,报“发生了未处理的异常(‘System ComponentModel.Win32Exception’,发生位置是 BSSocketSms ...

  8. java web 学习 --第七天(Java三级考试)

    第六天的学习内容如下:http://www.cnblogs.com/tobecrazy/p/3462244.html application application对象的方法与应用: ①   setA ...

  9. TokuDB 引擎安装测试

    背景: TokuDB引擎是有Tokutek开发的一个数据库存储引擎,在设计之初便引入了独特的索引算法,在其官网测试的文章中看到TokuDB性能比InnoDB高出很多. MySQL是一个插件式的数据库, ...

  10. UVALive 4953 Wormly--【提醒自己看题要仔细】

    有一条虫要过桥,桥有断的木板和好的木板.虫有L条腿B个身体,桥长N.01串表示桥的好坏.输出最少操作次数. 一开始虫的身体在最左B桥上,腿在最左L桥上,最后要到达最右B以及最右L... 操作有2种:① ...