混和头文件实战——7-49 打印学生选课清单(25 分)

简介: 混和头文件实战——7-49 打印学生选课清单(25 分)这题有点容易超时,我试了很多方法,发现用map连接string和一个vector容器是比较好的办法,接下来就给大家介绍介绍~

题目描述:

假设全校有最多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

代码长度限制   16 KB

时间限制     400 ms

内存限制     64 MB

PS:这题有点容易超时,我试了很多方法,发现用map连接string和一个vector容器是比较好的办法,接下来就给大家介绍介绍~

思路分析:

1.创建一个map,连接学生的姓名(string)和一个vector<int>(逃课课程)

2.根据题目的要求来输入数据并且存储它们

3.对vector的数据进行排序!(这点很关键!)

如果没有排序就会:

网络异常,图片无法展示
|
没错,不要被 题目的示例 骗了

vector排序:

网络异常,图片无法展示
|

4.按照n个名字出现的顺序进行输出

代码如下:

#include<iostream>
#include<algorithm>
#include<vector>
#include<map>
using namespace std;
int main()
{
  map<string, vector<int>>mp;
  int n, k;
  cin >> n >> k;
  int x, y;
  string str;
  for (int i = 0; i < k; i++) {
    cin >> x >> y;
    for (int j = 0; j < y; j++) {
      cin >> str;
      mp[str].push_back(x);
    }
  }
  for (int i = 0; i < n; i++) {
    cin >> str;
    cout << str;
    cout << " " << mp[str].size();
    sort(mp[str].begin(), mp[str].end());
    for (int j = 0; j < mp[str].size(); j++) {
      cout << " " << mp[str][j];
    }
    cout << endl;
  }
}

提交结果:

网络异常,图片无法展示
|

PS:解题结束~

相关文章
|
11月前
|
缓存 监控 负载均衡
HTTP代理配置中的常见错误及其解决方案
随着互联网发展,使用HTTP动态代理IP的需求日益增加。配置HTTP代理时常见问题及解决方法包括:1) 代理服务器无法连接:检查网络、防火墙和代理服务状态;2) 认证失败:确认凭据和配置;3) 请求超时:增加超时时间、检查后端服务和网络延迟;4) 缓存问题:清理缓存、设置缓存控制或禁用缓存;5) SSL/TLS问题:正确配置证书并确保客户端信任;6) 访问控制问题:检查ACL和日志;7) 性能问题:监控资源、负载均衡和优化配置;8) 日志记录与分析问题:启用详细日志、设置轮换策略和使用分析工具。通过解决这些问题,可以更有效地管理HTTP代理。
1445 13
|
存储 安全 网络安全
云计算与网络安全:构建安全的数字基石
【10月更文挑战第10天】 在当今数字化时代,云计算已成为推动企业创新和效率的关键驱动力。然而,随着数据和业务向云端迁移,网络安全问题变得日益突出。本文将探讨云计算与网络安全的融合,分析云服务中的主要安全挑战,并讨论如何通过先进的信息安全技术来应对这些挑战。我们将重点关注加密技术、访问控制、安全审计以及云服务提供商(CSP)的角色,以构建一个安全可靠的云计算环境。
|
自然语言处理 算法 数据可视化
R语言中对文本数据进行主题模型topic modeling分析
R语言中对文本数据进行主题模型topic modeling分析
|
C语言
输入学生成绩转化为等级
用C语言编写。输入学生成绩转化为等级。
605 0
|
前端开发 JavaScript NoSQL
Vue+SpringBoot打造学生综合素质评价系统
Vue+SpringBoot打造学生综合素质评价系统
565 0
|
编译器 程序员 C语言
【C语言初阶】万字解析,带你0基础快速入门C语言(上)2
【C语言初阶】万字解析,带你0基础快速入门C语言(上)
335 0
|
人工智能 自然语言处理 JavaScript
快来领取一只天猫精灵!
天猫精灵技能应用开发平台是阿里巴巴天猫精灵面向不同类型的广大开发者推出的技能应用开发、接入平台。
701 2
快来领取一只天猫精灵!
|
存储 Java 编译器
C · 初阶 | 光速初识C语言
基本了解C语言的基础知识,对C语言有一个大概的认识。每个知识点就是简单认识,不做详细讲解
289 0
C · 初阶 | 光速初识C语言
|
SQL 存储 缓存
【笔记】SQL调优指南—执行计划介绍
本文介绍如何使用查询执行计划并介绍一些基本的算子含义和实现。
273 0
|
测试技术 数据安全/隐私保护