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
  • 相关阅读:
    Swift 高级运算符
    drawer navigation, tabhostFragment 默认导向
    Jquery easyUI datagrid载入复杂JSON数据方法
    逆向project第005篇:跨越CM4验证机制的鸿沟(下)
    据说有99%的人都会做错的面试题
    POJ3187 Backward Digit Sums 【暴搜】
    Android
    arm-linux-gcc 的使用
    GNU 交叉工具链的介绍与使用
    使用当前平台的 gcc 编译内核头文件
  • 原文地址:https://www.cnblogs.com/xiaxiaosheng/p/3190739.html
Copyright © 2011-2022 走看看