• NOJ 比赛成绩查询问题II 另一种解法 双hash_map AC


    比赛成绩查询问题II

    时间限制(普通/Java) : 1000 MS/ 3000 MS          运行内存限制 : 81920 KByte
    总提交 : 352            测试通过 : 43 

    题目描述

    2014“华为杯南京邮电大学大学生团体歌唱大赛参赛团队的队名由“2014nupthw”和顺序号组合而成,例如2014nupthw0012014nupthw0022014nupthw0282014nupthw089等。大赛结束后,任何人都可以通过队名查询任何一支队伍的排名,同时也可以通过排名查询队名,这里队伍排名从1开始且无并列情况。主办方提供所有参赛团队队名和排名的对应列表以及需要咨询的参赛团队队名或排名,请你完成此次大赛的成绩查询工作。



    输入

    输入包括多个行:第1行给出参赛团体总数N、需要查询成绩的参赛团队数;接下来有N行,每一行先后给出参赛团体的队名和最终排名;接下来有M行,每一行给出需要查询排名的参赛团队的队名或者需要查询参赛团体队名的排名。这里1≤N<100001≤M≤1000000


    输出

    对应输入中最后M行要查询排名的参赛团队的队名或者需要查询参赛团体队名的排名,输出M行,每一行给出要查询的相应参赛团队队名、排名,以一个空格分隔上述两项内容。


    样例输入

    4 3
    2014nupthw089 2
    2014nupthw028 1
    2014nupthw001 4
    2014nupthw002 3
    2014nupthw002
    2
    2014nupthw028

    样例输出

    2014nupthw002 3
    2014nupthw089 2
    2014nupthw028 1

    题目链接

    用双哈希映射写的,可AC,实现代码如下:

    #include<iostream>
    #include<cstdlib>
    #include<cstdio>
    #include<cstring>
    #include<ext/hash_map>
    using namespace __gnu_cxx;
    using namespace std;
    int N,sn,a,b;
    char s[16];
    struct eqstr
    {
        bool operator()(const int s1,const int s2) const  //判断函数
        {
           return s1==s2;
        }
    };
    int main()
    {
       // freopen("data.in","r",stdin);   //打开数据文件
    	scanf("%d%d",&N,&sn);
        hash_map<int,int,hash<int>,eqstr> mymap;
        hash_map<int,string,hash<int>,eqstr> youmap;
        getchar();
        for(int i=0;i<N;i++)
        {
            scanf("%s%d",&s,&b);
            a=atoi(s+10);  //atoi将字符串转化成整型数
            mymap[a]=b,youmap[b]=s; //建立关系
        }
        for(int i=0;i<sn;i++)
        {
            scanf("%s",&s);
            if(strlen(s)>=6){
                a=atoi(s+10);
                if(mymap.find(a)!=mymap.end())
                    printf("%s %d
    ",s,mymap[a]);
                continue;
            }
            else
            {
                 a=atoi(s);
                if(youmap.find(a)!=youmap.end()){
                    cout<<youmap[a];
                    printf(" %d
    ",a);
                }
                continue;
            }
        }
    }

    版权声明:本文为博主原创文章,未经博主允许不得转载。

  • 相关阅读:
    netty源码深度分析
    《深入探索Netty原理及源码分析》文集小结
    Netty 那些事儿 ——— 心跳机制
    CSS实现单行、多行文本溢出显示省略号(…)
    测试
    PHP 二维数组根据某个字段排序
    PHP生成图片验证码、点击切换实例
    正确设置网站title、keywords、description(转载)
    nginx上支持.htaccess伪静态的配置实例
    百度编辑器Ueditor增加字体的修改方法
  • 原文地址:https://www.cnblogs.com/Tobyuyu/p/4965484.html
Copyright © 2020-2023  润新知