Message Flood
Message Flood
Time Limit: 1500MS Memory limit: 65536K
题目描述
输入
输出
示例输入
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的更多相关文章
- Sicily 1194. Message Flood
题目地址:1194. Message Flood 思路: 不区分大小写,先全部转化为小写,用stl提供的函数做会很方便. 具体代码如下: #include <iostream> #incl ...
- STL 之map解决 Message Flood(原字典树问题)
Message Flood Time ...
- SDUT1500 Message Flood
以前做过的用的字典树,可是貌似现在再用超内存....求解释... 问了LYN用的map函数做的,又去小小的学了map函数.... http://wenku.baidu.com/view/0b08cec ...
- sdut Message Flood(c++ map)
用字典树没过,学习了一下map; 参考博客:http://blog.csdn.net/zhengnanlee/article/details/8962432 AC代码 #include<iost ...
- Message Flood(map)
http://acm.sdut.edu.cn:8080/vjudge/contest/view.action?cid=203#problem/D 以前用字典树做过 #include <strin ...
- oj1500(Message Flood)字典树
大意:输入几个字符串,然后再输入几个字符串,看第一次输入的字符串有多少没有在后面的字符串中出现(后输入的字符串不一定出现在之前的字符串中) #include <stdio.h> #incl ...
- SDUT 1500-Message Flood(set)
Message Flood Time Limit: 1500ms Memory limit: 65536K 有疑问?点这里^_^ 题目描写叙述 Well, how do you feel abo ...
- Eclipse 4.2 failed to start after TEE is installed
--------------- VM Arguments--------------- jvm_args: -Dosgi.requiredJavaVersion=1.6 -Dhelp.lucene ...
- 浅谈原始套接字 SOCK_RAW 的内幕及其应用(port scan, packet sniffer, syn flood, icmp flood)
一.SOCK_RAW 内幕 首先在讲SOCK_RAW 之前,先来看创建socket 的函数: int socket(int domain, int type, int protocol); domai ...
随机推荐
- Android 内容提供器(Content Provider)介绍
内容提供器(Content Provider)主要用于在不同的应用程序之间实现数据共享的功能,它提供了一套完整的机制,允许一个程序访问另一个程序中的数据,同时还能保证被访问数据的安全性.目前,使用内容 ...
- Python super继承详解
MRO(Method resolution order)是python用来解析方法调用顺序的,mro中记录了一个类的所有基类的类类型序列,super不是简单地调用基类的方法,而是按照MRO中的顺序来调 ...
- Laplacian matrix 从拉普拉斯矩阵到谱聚类
谱聚类步骤 第一步:数据准备,生成图的邻接矩阵: 第二步:归一化普拉斯矩阵: 第三步:生成最小的k个特征值和对应的特征向量: 第四步:将特征向量kmeans聚类(少量的特征向量):
- 11.8---维护x的秩(CC150)
思路:比较easy.就是借助hashset让他有序然后就能够比较节省时间了. 答案: public static int[] getRankOfNumber(int[] a, int n){ int[ ...
- php构造函数和析构函数
构造函数 void __construct ([ mixed $args [, $... ]] ) PHP 5 允行开发者在一个类中定义一个方法作为构造函数.具有构造函数的类会在每次创建新对象时先调用 ...
- Service错误
错误日志: Caused by: java.lang.IllegalArgumentException: Service Intent must be explicit: Intent { act= ...
- 【Other】Ubuntu 14.04 pptp 客户端连接配置
sudo apt-get install pptp-linux binutils modprobe ppp_mppe sudo pptpsetup --create testvpn --server ...
- TCP的几个状态
转自: TCP的几个状态 (SYN, FIN, ACK, PSH, RST, URG) http://www.cnblogs.com/lidabo/p/5713569.html
- C#之键值对
1.初始化一个键值对 //初始化定义一个键值对,注意最后的括号 Dictionary<int, string> dic = new Dictionary<int, string> ...
- poj 1521
http://poj.org/problem?id=1521 题意:给你一个字符串,首先是计算出一个按正常编码的编码长度,其次是计算出一个用霍夫曼编码的编码长度,最后求正常编码的长度除以霍夫曼编码长度 ...