zoukankan      html  css  js  c++  java
  • Message Flood(map)

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

    以前用字典树做过

    #include <string.h>
    #include <stdio.h>
    #include <string>
    #include <map>
    using namespace std;
    
    int main()
    {
        char a[30];
        int n,m,sum,l;
        while(scanf("%d",&n)!=EOF&&n!=0)
        {
            sum=0;
            scanf("%d",&m);
            map<string,int>q;
            q.clear();
            for(int i=0; i<n; i++)
            {
                scanf("%s",a);
                l=strlen(a);
                for(int j=0; j<l; j++)
                   a[j]=tolower(a[j]);//将字符转换成小写字符
                q[a]++;
            }
            while(m--)
            {
                scanf("%s",a);
                l=strlen(a);
               for(int i=0;i<l;i++)
                 a[i]=tolower(a[i]);
                if(q.count(a)>0)
                {
                    sum++;
                    q.erase(q.find(a));
                }
               }
               printf("%d
    ",n-sum);
    
           }
           return 0;
    }

    第一次做的方法

    #include<stdio.h>
    #include<iostream>
    #include<map>
    #include<stdlib.h>
    #include<string.h>
    
    using namespace std;
    char a[20001][11];
    int main()
    {
        int n,m,l;
        char b[11];
        map<string,int>q;
        while(scanf("%d",&n)!=EOF&&n!=0)
        {
            q.clear();
            scanf("%d",&m);
            getchar();
            for(int i=0;i<n;i++)
            {
                gets(a[i]);
                l=strlen(a[i]);
                for(int j=0;j<l;j++)
                {
                    if(a[i][j]>='A'&&a[i][j]<='Z')
                    a[i][j]=a[i][j]+32;
                }
                q[a[i]]++;
            }
            for(int i=1;i<=m;i++)
            {
                gets(b);
                l=strlen(b);
                for(int i=0;i<l;i++)
                {
                    if(b[i]>='A'&&b[i]<='Z')
                    b[i]=b[i]+32;
                }
                q[b]--;
            }
            int sum=0;
            for(int i=0;i<n;i++)
            {
                if(q[a[i]]>=1)
                sum++;
            }
            printf("%d
    ",sum);
        }
        return 0;
    }

    大神的代码

    #include <algorithm>
    #include <iostream>
    #include <cstring>
    #include <cstdlib>
    #include <cstdio>
    
    #include <set>
    
    using namespace std;
    
    int main()
    {
        int n,m,i,j,len;
        char s[30];
        while(scanf("%d",&n)!=EOF&&n)
        {
            set<string>mp;//声明set容器
            set<string>::iterator it;//声明set迭代器
            scanf("%d",&m);
            getchar();
            for(i=0; i<n; i++)
            {
                gets(s);
                len=strlen(s);
                for(j=0; j<len; j++)
                {
                    s[j]=towlower(s[j]);
                }
                mp.insert(s);//向set里加入一个元素
            }
            for(i=0; i<m; i++)
            {
                gets(s);
                len=strlen(s);
                for(j=0; j<len; j++)
                {
                    s[j]=towlower(s[j]);
                }
                if(mp.count(s))//判断容器里是否存在该元素
                    mp.erase(s);//如果容器里存在该元素,则删除
            }
            printf("%d
    ",mp.size());//输出容器内剩余元素个数
        }
        return 0;
    }
  • 相关阅读:
    浏览器内核
    为什么一般请求可以下载文件,Ajax 请求就不能下载
    转 深入理解javascript原型和闭包(10)——this
    node读取文本文件时,去掉BOM
    AMD & CMD
    gulp requirejs Error: ENOENT: no such file or directory, open '/js/require_config.js', 一直报找不到require_config.js,坑死了
    [BZOJ3224]普通平衡树
    [NOIP2014D2]
    [NOIP2014D1]
    [NOIP2013D2]
  • 原文地址:https://www.cnblogs.com/zhangmingcheng/p/3894366.html
Copyright © 2011-2022 走看看