题意:给出K门课程(编号1~K)以及报名该课程的学生,然后有N个学生查询,对于每一个查询,输出该学生所报的相关课程编号,且要求编号按增序输出。

思路:题目不难,解析略。(本来用map直接映射,用STL的string存储姓名是会超时的,结果今天再测了一下结果能AC了,什么鬼!?)考试时,如果只是纯映射关系,无需键值有序,可以用unordered_map,头文件在<unordered_map>下,如果会超时再尝试字符串哈希的方法。简单的字符串哈希就是下面的change()函数,需记住。

代码:

#include <cstdio>
#include <cstring>
#include <set>
using namespace std;
***+;
set<int> stu[N];//stu[i]存放学生所选择的课程编号,利用set的自动排序

//将字符串映射成数字
int change(const char *str)
{
    ,i=;
    int len=strlen(str);
    ;i++)
        id=*id+(str[i]-'A');
    id=id*+str[i]-';
    return id;
}

int main()
{
    int queryCnt,k;
    scanf("%d%d",&queryCnt,&k);
    int courseid,m;
    ];
    ;i<=k;i++){
        scanf("%d%d",&courseid,&m);
        while(m){
            scanf("%s",name);
            int id=change(name);
            stu[id].insert(courseid);
            m--;
        }
    }
    ;i<queryCnt;i++){
        scanf("%s",name);
        int id=change(name);
        printf("%s %d",name,stu[id].size());
        for(auto it:stu[id]) printf(" %d",it);
        printf("\n");
    }
    ;
}

1039 Course List for Student的更多相关文章

  1. 1039. Course List for Student (25)

    题目链接:http://www.patest.cn/contests/pat-a-practise/1039 题目: 1039. Course List for Student (25) 时间限制 2 ...

  2. PAT 1039 Course List for Student[难]

    1039 Course List for Student (25 分) Zhejiang University has 40000 students and provides 2500 courses ...

  3. PAT 甲级 1039 Course List for Student (25 分)(字符串哈希,优先队列,没想到是哈希)*

    1039 Course List for Student (25 分)   Zhejiang University has 40000 students and provides 2500 cours ...

  4. PAT 1039. Course List for Student

    Zhejiang University has 40000 students and provides 2500 courses. Now given the student name lists o ...

  5. 1039 Course List for Student (25分)

    Zhejiang University has 40000 students and provides 2500 courses. Now given the student name lists o ...

  6. PAT 1039 Course List for Student (25分) 使用map<string, vector<int>>

    题目 Zhejiang University has 40000 students and provides 2500 courses. Now given the student name list ...

  7. PAT甲题题解-1039. Course List for Student (25)-建立映射+vector

    博主欢迎转载,但请给出本文链接,我尊重你,你尊重我,谢谢~http://www.cnblogs.com/chenxiwenruo/p/6789157.html特别不喜欢那些随便转载别人的原创文章又不给 ...

  8. PAT (Advanced Level) 1039. Course List for Student (25)

    map会超时,二分吧... #include<iostream> #include<cstring> #include<cmath> #include<alg ...

  9. 【PAT甲级】1039 Course List for Student (25 分)(vector嵌套于map,段错误原因未知)

    题意: 输入两个正整数N和K(N<=40000,K<=2500),分别为学生和课程的数量.接下来输入K门课的信息,先输入每门课的ID再输入有多少学生选了这门课,接下来输入学生们的ID.最后 ...

随机推荐

  1. scala学习手记24 - 多参数函数值

    上一节的函数值只有一个参数.函数值当然也是可以有多个参数的.看一下下面的inject方法: def inject(arr: Array[Int], initial: Int, operation: ( ...

  2. int(3)与int(11)的区别

    注意:这里的M代表的并不是存储在数据库中的具体的长度,以前总是会误以为int(3)只能存储3个长度的数字,int(11)就会存储11个长度的数字,这是大错特错的.其实当我们在选择使用int的类型的时候 ...

  3. mac用ssh连接linux云服务器中文乱码或无法显示解决

    问题1:服务器是ubuntu16.04,用mac自带的ssh连接后无法正常输入中文? 解:这种情况一般是终端和服务器的字符集不匹配,MacOSX下默认的是utf8字符集. 打开编辑 .bashrc 文 ...

  4. 20165332实验三 敏捷开发与XP实践

    20165332实验三 敏捷开发与XP实践 实验内容 1:XP基础 2:XP核心实践 3:相关工具 实验1 在IDEA中使用工具(Code->Reformate Code)把下面代码重新格式化, ...

  5. 【lightoj-1026】Critical Links(桥)

    题意: 给出无向图,求桥的模板题. #include <bits/stdc++.h> using namespace std; ; int dfn[N], low[N];//时间戳;low ...

  6. C3P0使用详解

    定义: C3P0是一个开源的JDBC连接池,目前使用它的开源项目有Hibernate,Spring等. 数据库连接池的基本思想就是为数据库连接建立一个"缓冲池".预先在缓冲池中放入 ...

  7. 【SQL查询】模糊查询_like

    [格式]:SELECT 字段 FROM 表 WHERE 某字段 Like 条件 [说明]: 1. %表示任意0个或多个字符,可匹配任意类型和长度的字符. 2. _ 表示任意单个字符.匹配单个任意字符. ...

  8. jsp中解决乱码问题

    解决中文乱码 a) 第一种: String name=new String(name.getBytes("ISO-8859-1"),"UTF-8"); b) 第 ...

  9. Kali Linux ettercap的使用

    ettercap是执行ARP欺骗嗅探的工具,通常用它来施行中间人攻击. 我还介绍过另一个arp欺骗工具-arpspoof 我使用的是Kali Linux 2.0:在开始使用ettercap之前,先配置 ...

  10. Markdown list状态下插入代码

    /***************************************************************************** * Markdown list状态下插入代 ...