题意:给出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");
    }
    ;
}

最新文章

  1. openresty 前端开发入门三之JSON篇
  2. MyEclipse8.6中提交SVN报错
  3. 关于session更新的问题
  4. 一个layer可以跟着画完的线移动ios程序 好玩啊。
  5. Communication System
  6. PostgreSQL 9.3 Streaming Replication 状态监控
  7. 学习了解 Exchanger - 实现生产者消费者模型
  8. 我们一起来排序——使用Java语言优雅地实现常用排序算法
  9. AI-响应式、分页器
  10. java将所有的字符串转换为大写或小写
  11. Django Rest framework 之 权限
  12. android客服端+eps8266+单片机+路由器之远程控制系统
  13. Qt5数据库
  14. bzoj1692
  15. IIC协议解释(转)
  16. python全栈 函数名 闭包及迭代器
  17. Java获取文件后缀名
  18. 20155210 EXP6 信息搜集与漏洞扫描
  19. sell 项目 订单详情表 设计 及 创建
  20. Ubuntu16.04下安装CUDA8.0和tensorflow

热门文章

  1. Linux grep 命令大全
  2. Win10/Server2016镜像集成离线补丁
  3. datagrid中用tooltip
  4. 【spark】常用转换操作:keys 、values和mapValues
  5. IIS(IISReset.exe)命令行
  6. SpringBoot_10_打成jar包后使用外部配置文件中的配置来启动工程
  7. Solr集群安装
  8. AutoLayout 使用详细
  9. sql server显示行号
  10. JAVA线程死锁