• STL Map hdu1004,1075,1263


    map 的使用  注意first 为key值  second 是value值

    然后就是在杭电上头文件对于map的map<string,int >::iterator i;的操作。使用#include<cstring>会编译错误。。<string>则不会

    对于hdu1263,由于map<string,int>存储是按KEY值的字母顺序排序,所以这里免去了排序的步骤。

    STL很强大!

    hdu1004:

    #include<iostream>
    #include<string>
    #include<map>
    using namespace std;
    map<string,int>M;
    map<string,int>::iterator p,q;
    int n;
    int main()
    {
        string str;
        while(scanf("%d",&n),n)
        {
           M.clear(); //清空
           while(n--)
           {
              cin>>str;
              if(M[str]==0) //插入
                M[str]=1;
              else 
                  M[str]++;
           }
           int k=-1;
           for(p=M.begin();p!=M.end();p++)   //查找
           {
             if((p->second)>k)
             {
                k=p->second;
                q=p;
             }
           }
          cout<<q->first<<endl; 
        }
        return 0;
    }


     然后是hdu1075

    #include <stdlib.h>
    #include <iostream>
    #include <stdio.h>
    #include<string>
    #include<map>
    using namespace std;
    map<string,string> m;
    map<string,string>::iterator it;
    char c[3020];
    int main()
    {
        char s[22],t[22],tmp[22];
        scanf("%s",s);
        while(scanf("%s",s)!=EOF)
        {
            if(!strcmp(s,"END"))
                break;
            scanf("%s",t);
            m[t]=s;
        }
        scanf("%s",s);
        getchar();
        while(gets(c))
        {
            if(!strcmp(c,"END"))
                break;
            int len=strlen(c);
            int j=0;
            for(int i=0;i<len;i++)
            {
                if(c[i]>='a'&&c[i]<='z')
                {
                    tmp[j]=c[i];
                    j++;
                }
                else
                {
                    tmp[j]='\0';
                    it=m.find(tmp);
                    if(it!=m.end())
                    {
                        char ww[22];
                        //ww=it->second;
                        cout<<it->second;
                        //printf("%s",it->second);
                    }
                    else
                    {
                        printf("%s",tmp);
                    }
                    printf("%c",c[i]);
                    j=0;
                }
            }
            printf("\n");
        }
        return 0;
    }
    


    最后hdu1263

    #include<iostream>
    #include<string>
    #include<cstdio>
    #include<map>
    using namespace std;
    
    int main()
    {
        map<string,map<string,int> > a;
        map<string,int> b;
        map<string,map<string,int> >::iterator i;
        map<string,int>::iterator j;
        int T,m,tmp;string s,tb;
        cin>>T;
        while(T--)
        {
            a.clear();
            b.clear();
            cin>>m;
            while(m--)
            {
                cin>>s>>tb>>tmp;
                a[tb][s]+=tmp;
            }
            for(i=a.begin();i!=a.end();i++)
            {
                cout<<i->first<<endl;
                b=i->second;
                for(j=b.begin();j!=b.end();j++)
                {
                    cout<<"   |----"<<j->first<<"("<<j->second<<")"<<endl;
                }
            }
            if(T!=0)
                printf("\n");
        }
    }
    


     

  • 相关阅读:
    杭州电子科技大学程序设计竞赛(2016’12)- 网络同步赛 1001
    AtCoder Beginner Contest 050 ABC题
    2016年第四届湘潭大学新生趣味程序设计竞赛
    华东交通大学2016年ACM“双基”程序设计竞赛 1008
    移动端报表JS开发示例
    unity shader入门
    现代控制理论思考题----倒立摆小车控制算法研究
    Linux驱动基础:msm平台,modem等framework加载
    简谈高通Trustzone的实现
    现代控制理论课件分享及课后思考题(初稿待完善)
  • 原文地址:https://www.cnblogs.com/amourjun/p/5134149.html
Copyright © 2020-2023  润新知