打印学生选课清单(25分)

  • 问题描述

假设全校有最多40000名学生和最多2500门课程。现给出每门课的选课学生名单,要求输出每个前来查询的学生的选课清单。

  • 输入

输入的第一行是两个正整数:N(≤40000),为前来查询课表的学生总数;K(≤2500),为总课程数。此后顺序给出课程1到K的选课学生名单。格式为:对每一门课,首先在一行中输出课程编号(简单起见,课程从1到K编号)和选课学生总数(之间用空格分隔),之后在第二行给出学生名单,相邻两个学生名字用1个空格分隔。学生姓名由3个大写英文字母+1位数字组成。选课信息之后,在一行内给出了N个前来查询课表的学生的名字,相邻两个学生名字用1个空格分隔。

  • 输出

对每位前来查询课表的学生,首先输出其名字,随后在同一行中输出一个正整数C,代表该生所选的课程门数,随后按递增顺序输出C个课程的编号。相邻数据用1个空格分隔,注意行末不能输出多余空格。

  • 样例输入

10 5
1 4
ANN0 BOB5 JAY9 LOR6
2 7
ANN0 BOB5 FRA8 JAY9 JOE4 KAT3 LOR6
3 1
BOB5
4 7
BOB5 DON2 FRA8 JAY9 KAT3 LOR6 ZOE1
5 9
AMY7 ANN0 BOB5 DON2 FRA8 JAY9 KAT3 LOR6 ZOE1
ZOE1 ANN0 BOB5 JOE4 JAY9 FRA8 DON2 AMY7 KAT3 LOR6

  • 样例输出

ZOE1 2 4 5
ANN0 3 1 2 5
BOB5 5 1 2 3 4 5
JOE4 1 2
JAY9 4 1 2 4 5
FRA8 3 2 4 5
DON2 2 4 5
AMY7 1 5
KAT3 3 2 4 5
LOR6 4 1 2 4 5

解题思路
定义一个map<string,vector> string来指定人名 vector 中储存课程,对于输出时的排序 用 sort解绝即可.
例如:vector v; sort(v.begn(),v.end());
详细解题思路见代码

代码实现

#include<bits/stdc++.h>
using namespace std;
int main(){int n,m;cin>>n>>m;map<string,vector<int>> mp;for(int i = 0;i < m;i++){int num,ks;cin>>num>>ks;for(int j = 0;j < ks;j++){string s;cin>>s;mp[s].push_back(num);}}for(int i = 0;i < n;i++){string s;cin>>s;sort(mp[s].begin(),mp[s].end());cout<<s<<" "<<mp[s].size();for(int j = 0;j < mp[s].size();j++){cout<<" "<<mp[s][j];}cout<<endl;}
}

打印学生选课清单(25分) c++实现相关推荐

  1. 7-3 打印学生选课清单 (25分)

    7-3 打印学生选课清单 (25分) 假设全校有最多40000名学生和最多2500门课程.现给出每门课的选课学生名单,要求输出每个前来查询的学生的选课清单.输入格式: 输入的第一行是两个正整数:N(≤ ...

  2. 7-2 打印学生选课清单 (25分)(c++)

    7-2 打印学生选课清单 (25分) 假设全校有最多40000名学生和最多2500门课程.现给出每门课的选课学生名单,要求输出每个前来查询的学生的选课清单. 输入格式: 输入的第一行是两个正整数:N( ...

  3. 7-49 打印学生选课清单 (25 分)(思路+详解+map做法(一对多)+超时解决)Come baby!

    一:题目 假设全校有最多40000名学生和最多2500门课程.现给出每门课的选课学生名单,要求输出每个前来查询的学生的选课清单. 输入格式: 输入的第一行是两个正整数:N(≤40000),为前来查询课 ...

  4. PTA 7-47 打印选课学生名单分数 25 分 (C 邻接表+二叉排序树 )

    题目: 假设全校有最多40000名学生和最多2500门课程.现给出每个学生的选课清单,要求输出每门课的选课学生名单. 输入格式: 输入的第一行是两个正整数:N(≤40000),为全校学生总数:K(≤2 ...

  5. 打印选课学生名单 (25 分)

    假设全校有最多40000名学生和最多2500门课程.现给出每个学生的选课清单,要求输出每门课的选课学生名单. 输入格式: 输入的第一行是两个正整数:N(≤40000),为全校学生总数:K(≤2500) ...

  6. 7-47 打印选课学生名单(25 分)

    假设全校有最多 40000 名学生和最多 2500 门课程.现给出每个学生的选课清单,要求输出每门课的选课学生名单. 输入格式: 输入的第一行是两个正整数:N(≤40000),为全校学生总数:K(≤2 ...

  7. 7-47 打印选课学生名单 (25 分)

    假设全校有最多40000名学生和最多2500门课程.现给出每个学生的选课清单,要求输出每门课的选课学生名单. 输入格式: 输入的第一行是两个正整数:N(≤40000),为全校学生总数:K(≤2500) ...

  8. 7-14 打印选课学生名单(25 分)

    假设全校有最多40000名学生和最多2500门课程.现给出每个学生的选课清单,要求输出每门课的选课学生名单. 输入格式: 输入的第一行是两个正整数:N(≤40000),为全校学生总数:K(≤2500) ...

  9. 7-70 打印选课学生名单 (25 分)

    #include<stdio.h> #include<string.h> int main() {int a[100][10],b[100][1000],i,j,k,n,p,p ...

  10. 打印选课学生名单 (25分)

    打印选课学生名单 (25分) 假设全校有最多40000名学生和最多2500门课程.现给出每个学生的选课清单,要求输出每门课的选课学生名单. 输入格式: 输入的第一行是两个正整数:N(≤40000),为 ...

最新文章

  1. 为什么说 SQL 是最成功的第四代语言?
  2. 034_ JDK的Enumeration接口
  3. ORACLE的所有字段类型
  4. RIPv2的手工汇总 及其 RIPv2和OSPF的路由重分布
  5. .net显示今天农历的代码
  6. BeetleX服务网关授权配置
  7. 关于.NET微服务最热门的问题解答
  8. [转]const使用详解
  9. MySQL安装错误: unknown option '--skip-federated'
  10. 出租车计费java_java 计程车计费
  11. JavaScript类数组对象参考
  12. TIOBE 2 月编程语言排行榜:Python 逼近 C,Groovy 重回 TOP20
  13. JavaScript--Array; Array.prototype
  14. 滑动平均_善杰告诉您初中物理学滑动变阻器的各种作用
  15. 实现两个变量的互换(不借助第三个变量)
  16. java编写car类_java编写一个汽车类,有属性:品牌、型号、排量、速度,有方法:启动、加速、转弯、刹车、息火...
  17. vaex库使用方法python_Python秒开100G数据是怎么办到的?
  18. 深信服下一代防火墙组网介绍及配置
  19. Kubernetes-蔚来汽车的Kubernetes实践
  20. 超融合为什么是“绿色的”?

热门文章

  1. Phonegap 之 iOS银联在线支付(js调用ios端银联支付控件
  2. Android APP报价参考
  3. HTML5 Input 日期选择器
  4. SageMath使用指南——笔记
  5. 无损检测技术知识大全
  6. 2021-02-20
  7. WPS简历模板的图标怎么修改_官方发福利一起来薅羊毛啦!教你免费领WPS会员
  8. java 水晶报表教程_WEB开发中水晶报表的使用心得
  9. avr+开发环境+linux,菜鸟的avr-gcc for linux 安装过程
  10. 中国31省R&D经费支出、R&D投入强度数据(2000-2018年)