http://acm.sdut.edu.cn:8080/vjudge/contest/view.action?cid=203#problem/D

以前用字典树做过

  1. #include <string.h>
  2. #include <stdio.h>
  3. #include <string>
  4. #include <map>
  5. using namespace std;
  6.  
  7. int main()
  8. {
  9. char a[];
  10. int n,m,sum,l;
  11. while(scanf("%d",&n)!=EOF&&n!=)
  12. {
  13. sum=;
  14. scanf("%d",&m);
  15. map<string,int>q;
  16. q.clear();
  17. for(int i=; i<n; i++)
  18. {
  19. scanf("%s",a);
  20. l=strlen(a);
  21. for(int j=; j<l; j++)
  22. a[j]=tolower(a[j]);//将字符转换成小写字符
  23. q[a]++;
  24. }
  25. while(m--)
  26. {
  27. scanf("%s",a);
  28. l=strlen(a);
  29. for(int i=;i<l;i++)
  30. a[i]=tolower(a[i]);
  31. if(q.count(a)>)
  32. {
  33. sum++;
  34. q.erase(q.find(a));
  35. }
  36. }
  37. printf("%d\n",n-sum);
  38.  
  39. }
  40. return ;
  41. }

第一次做的方法

  1. #include<stdio.h>
  2. #include<iostream>
  3. #include<map>
  4. #include<stdlib.h>
  5. #include<string.h>
  6.  
  7. using namespace std;
  8. char a[][];
  9. int main()
  10. {
  11. int n,m,l;
  12. char b[];
  13. map<string,int>q;
  14. while(scanf("%d",&n)!=EOF&&n!=)
  15. {
  16. q.clear();
  17. scanf("%d",&m);
  18. getchar();
  19. for(int i=;i<n;i++)
  20. {
  21. gets(a[i]);
  22. l=strlen(a[i]);
  23. for(int j=;j<l;j++)
  24. {
  25. if(a[i][j]>='A'&&a[i][j]<='Z')
  26. a[i][j]=a[i][j]+;
  27. }
  28. q[a[i]]++;
  29. }
  30. for(int i=;i<=m;i++)
  31. {
  32. gets(b);
  33. l=strlen(b);
  34. for(int i=;i<l;i++)
  35. {
  36. if(b[i]>='A'&&b[i]<='Z')
  37. b[i]=b[i]+;
  38. }
  39. q[b]--;
  40. }
  41. int sum=;
  42. for(int i=;i<n;i++)
  43. {
  44. if(q[a[i]]>=)
  45. sum++;
  46. }
  47. printf("%d\n",sum);
  48. }
  49. return ;
  50. }

大神的代码

  1. #include <algorithm>
  2. #include <iostream>
  3. #include <cstring>
  4. #include <cstdlib>
  5. #include <cstdio>
  6.  
  7. #include <set>
  8.  
  9. using namespace std;
  10.  
  11. int main()
  12. {
  13. int n,m,i,j,len;
  14. char s[];
  15. while(scanf("%d",&n)!=EOF&&n)
  16. {
  17. set<string>mp;//声明set容器
  18. set<string>::iterator it;//声明set迭代器
  19. scanf("%d",&m);
  20. getchar();
  21. for(i=; i<n; i++)
  22. {
  23. gets(s);
  24. len=strlen(s);
  25. for(j=; j<len; j++)
  26. {
  27. s[j]=towlower(s[j]);
  28. }
  29. mp.insert(s);//向set里加入一个元素
  30. }
  31. for(i=; i<m; i++)
  32. {
  33. gets(s);
  34. len=strlen(s);
  35. for(j=; j<len; j++)
  36. {
  37. s[j]=towlower(s[j]);
  38. }
  39. if(mp.count(s))//判断容器里是否存在该元素
  40. mp.erase(s);//如果容器里存在该元素,则删除
  41. }
  42. printf("%d\n",mp.size());//输出容器内剩余元素个数
  43. }
  44. return ;
  45. }

Message Flood(map)的更多相关文章

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

                                                                                      Message Flood Time ...

  2. Message Flood

    Message Flood Time Limit: 1500MS Memory limit: 65536K 题目描述 Well, how do you feel about mobile phone? ...

  3. Sicily 1194. Message Flood

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

  4. sdut Message Flood(c++ map)

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

  5. SDUT1500 Message Flood

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

  6. oj1500(Message Flood)字典树

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

  7. 图层损坏 E/ArcGIS﹕ The map or layer has been destroyed or recycled. 资源未释放

    看到论坛上有个网友和我一样的问题: The map or layer has been destroyed or recyled t Hello, I have a problem when the ...

  8. proto3 中的 map 类型

    .proto syntax = "proto3"; option optimize_for = SPEED; message TestStruct { map<int32,s ...

  9. SDUT 1500-Message Flood(set)

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

随机推荐

  1. IOS 怎么用UIScrollView来滚动和缩放他的内容第一篇

    本篇文章来自于互联网资料翻译 UIScrollView是在IOS最有用的控件之一.他是一个来展现超过一个屏幕的内容的很好的方式.下面有很多的技巧来使用他. 这篇文章就是关于UIScrollView的, ...

  2. WP8.1学习系列(第二章)——Toast通知

    Toast 通知概述(Windows 运行时应用) 你的应用要想通过 Toast 通知通信,必须在应用的清单文件中声明它支持 Toast.Toast 通知可包含文本,并且 Windows 上的 Toa ...

  3. 【cs229-Lecture11】贝叶斯统计正则化

    本节知识点: 贝叶斯统计及规范化 在线学习 如何使用机器学习算法解决具体问题:设定诊断方法,迅速发现问题 贝叶斯统计及规范化(防止过拟合的方法) 就是要找更好的估计方法来减少过度拟合情况的发生. 回顾 ...

  4. |和||、&&和&

    |和||.&&和& | : 会检查每一个 条件的真伪,再做“或”运算 ||: 按照条件写的顺序,直到一个为true时,后面的条件则不再检查,直接进入条件 & : 会检查 ...

  5. jQuery事件处理(七)

    1.自定义事件(用户手动trigger的一般都是自定义事件) trigger: function( event, data, elem, onlyHandlers ) { var i, cur, tm ...

  6. Android与互联网的交互方式有三种

    数据下载:下载网络上的的数据,包括图片.代码文本.XML文件.JSON数据,音/视频等大文件,调用webservice. 数据上传:上传图片.文本.XML.JSON数据.音/视频文件,调用webser ...

  7. 对Java中使用两个大括号进行初始化的理解

    最近重读Java 编程思想,读到有关实例化代码块儿 的内容,使我对于使用两个大括号进行初始化有了更深的理解. 实例化代码块儿: 和静态代码块儿的概念相对应,静态代码块儿是static 关键字 + 大括 ...

  8. MFC学习单选框Radio使用

    创建单选框Radio ,ID号IDC_RADIO_NAME 1.获取单选框内容 int RadioState = ((CButton *)GetDlgItem(IDC_RADIO_NAME))-> ...

  9. shell脚本中对简单实现对log的处理

    用shell在写小程序时,log没用像python样用logging模块可以直接使用,下面我们就简单写下用shell函数来实现log分级 #/bin/bash sys_log="/var/l ...

  10. html如何让label在div中的垂直方向居中显示?

    设置label的行高 line-height 和div的高度一致即可.