zoukankan      html  css  js  c++  java
  • CSUST 1503 ZZ买衣服

    解题报告:题目大意是输入两个数N和M,N表示一开始输入N个字符串,并且保存起来,然后再输入M个字符串,并且在输入M个字符串的同时要求判断每次输入的字符串是否已经存在,要注意的是后面输入的M个字符串每次输入之后如果判断不存在的话,还要把输入的这个字符串保存起来。

    第一个用STL  map容器过的题,纪念一下。看到这题之后,也许很多人都会想到用字典树,但我试过了 ,这题的输入的数据量比较大,如果用字典树就会超内存,于是这题又被我搁置了很久,直到我学了STL ,才发现,如果这题用map容器就是一个水题。前面输入的N个字符串只要一次插入到容器中就行了,后面输入M个字符串时,没输入一次就判断一次,在map容器中是否已经存在这个字符串。另外这题有一个很重要的点就是不能用cin或cout输入或输出,刚开始用我就TLE了,后来改 一下,把输入改成scanf,结果还是TLE,但是后来cout改成printf之后就过 了,瞬间少用了几百毫秒的时间,越来越感觉cin和cout不是一般地慢了。

     1 #include<cstdio>
     2 #include<map>
     3 #include<string>
     4 using namespace std;
     5 int main() {
     6     int N,M;
     7     while(scanf("%d%d",&N,&M)!=EOF) {
     8         string name;
     9         char c[1000];
    10         map<string,int> map1;
    11         for(int i = 1;i<=N;++i) {
    12             scanf("%s",c);
    13             name = c;
    14             map1.insert(pair<string,int> (name,i));
    15         }
    16         pair<map<string,int>::iterator,bool> iter;
    17         for(int i = 1;i<=M;++i) {
    18             scanf("%s",c);
    19             name = c;
    20             iter = map1.insert(pair<string,int> (name,N+i));
    21             if(iter.second)
    22             printf("YES
    ");
    23             else printf("NO
    ");
    24         }
    25     }
    26     return 0;
    27 }
    View Code
  • 相关阅读:
    Binding to a Service
    UML类图几种关系的总结
    阿里云调试
    Serif和Sans-serif字体的区别
    从Log4j迁移到LogBack的理由
    logback
    java 解析json格式数据(转)
    开源Web测试工具介绍
    GET乱码以及POST乱码的解决方法
    单元测试框架TestNg使用总结
  • 原文地址:https://www.cnblogs.com/xiaxiaosheng/p/3190739.html
Copyright © 2011-2022 走看看