5 打印选课学生名单

分数 25
作者 DS课程组
单位 浙江大学

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

输入格式:

输入的第一行是两个正整数:N(≤40000),为全校学生总数;K(≤2500),为总课程数。此后N行,每行包括一个学生姓名(3个大写英文字母+1位数字)、一个正整数C(≤20)代表该生所选的课程门数、随后是C个课程编号。简单起见,课程从1到K编号。

输出格式:

顺序输出课程1到K的选课学生名单。格式为:对每一门课,首先在一行中输出课程编号和选课学生总数(之间用空格分隔),之后在第二行按字典序输出学生名单,每个学生名字占一行。

输入样例:

10 5
ZOE1 2 4 5
ANN0 3 5 2 1
BOB5 5 3 4 2 1 5
JOE4 1 2
JAY9 4 1 2 5 4
FRA8 3 4 2 5
DON2 2 4 5
AMY7 1 5
KAT3 3 5 4 2
LOR6 4 2 4 1 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

代码长度限制
16 KB
时间限制
1000 ms
内存限制
64 MB
C++ (g++)

思路:

本题难点在于如何存数据。
我们可以用一个vector数组来存放每个课程所包含的学生名单。
注意输出顺序按照字典顺序输出。
(一开始用cin,cout,最后一个测试点总过不去,会超时。)

AC代码:

#include<bits/stdc++.h>
using namespace std;
vector<string>V[2505];
int main() {int n, m;scanf("%d %d",&n,&m);int id;char name[15];for (int i = 1; i <= n; i++) {scanf("%s",name);int cnt;scanf("%d",&cnt);while (cnt--) {scanf("%d",&id);V[id].push_back(name);}}for (int i = 1; i <= m; i++) {sort(V[i].begin(), V[i].end());printf("%d %d\n",i,V[i].size());for (int j = 0; j < V[i].size(); j++)printf("%s\n",V[i][j].c_str());}return 0;
}

5 打印选课学生名单相关推荐

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

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

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

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

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

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

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

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

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

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

  6. 7-47 打印选课学生名单 (25 分)(两种做法)(思路加详解+map+vector做法+最后一个点超时解决)+兄弟们冲丫丫

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

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

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

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

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

  9. PTA 7-47 打印选课学生名单

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

最新文章

  1. xmlns=http://schemas.xmlsoap.org/wsdl/,这是什么意思,我只知道:xmlns:xx=....,
  2. oracle别名作用范围,在Oracle的Where子句子查询中使用别名或表名,
  3. 码神日志N0.1|专场邀请:深度解析音视频技术(内有福利哦~)
  4. 去除inline-block元素间间距
  5. Divbrush 网页Div css画板定位布局系统 v1.8
  6. pip修改下载源为国内源 linux系统
  7. flashBuilder安装Subclipse与XMLBuddy插件
  8. python3 Tkinter GUI 试水
  9. 彩色数字图像处理基础
  10. 无理数究竟是什么?连续性公理的产物?——读戴德金之二
  11. 全国电费余额查询API接口
  12. 服务器日志显示意外关闭,服务器多次异常关闭,错误日志:计算机已经从检测错误后重新启动。。检测错误: - Microsoft Community...
  13. 树莓派系统安装 3.5寸LCD驱动安装 ssh远程链接
  14. word页码不连续怎么办
  15. 计算机ping 的快捷键,Ping命令使用小技巧
  16. PC按键精灵读取txt文本出现乱码怎么办?按键精灵手机助手读取txt文本中文变问号怎么办?
  17. Web 和http协议
  18. Win11安装Ubuntu子系统报错WslRegisterDistribution failed with error: 0x800701bc
  19. 北航操作系统课程-第一次作业-操作系统引论1
  20. postgresql 执行sql文件

热门文章

  1. 探索ESP8285(2)搭建Windows版MQTT服务器
  2. 简述计算机视觉中的单眼线索,单眼线索
  3. 【STM32CubeMX】NRF24L01模块实现“1对1“及“1对多“无线通信
  4. kali_linux 的简单美化,Kali_linux 的简单美化
  5. 戴尔霄龙服务器销售商,搭载AMD EPYC“霄龙”处理器:DELL 戴尔 发布 EMC PowerEdge R7415 、R7425 和 R6415 服务器...
  6. 综合布线实例详细解决方案
  7. 计算器求解一元一次方程
  8. ExoPlayer 源码阅读小记--HLS播放带缓存加载M38U文件过程
  9. 【MAYA动画基础学习 1】小球动画的三种方式——关键帧,刚体和布料
  10. 公务员报考二级专业目录计算机类,浙江省考报名,所学专业所属的二级专业目录如何找?...