目录

  • 问题A:学生课程列表
  • 问题B:课程学生名单

问题A:学生课程列表

http://codeup.cn/problem.php?cid=100000596&pid=0



类似于一个数据库你前面输入的数据都进到里面了。
你输入一个人,输出他对应的信息。

用一个int型的vector,再先将字符串转换成对应的数值id用定址法统计。

#include<cstdio>
#include<vector>
#include<iostream>
#include<algorithm>
#include<cstring>
using namespace std;
vector<int> stu[175761];//即学生编号数26*26*26*10+1
int str_int(char a[])
{int sum=0;for(int i=0;i<3;i++){sum=sum*26+a[i]-'A';}sum=sum*10+a[3]-'0';return sum;
}
int main(void)
{int people,book;int number,n;char name[20];cin>>people>>book;while(book){cin>>number>>n;for(int i=0;i<n;i++){scanf("%s",name);stu[str_int(name)].push_back(number);} book--;}while(people){scanf("%s",name);printf("%s ",name);printf("%d",stu[str_int(name)].size());sort(stu[str_int(name)].begin(),stu[str_int(name)].end());for(int i=0;i<stu[str_int(name)].size();i++){printf(" %d",stu[str_int(name)][i]);    }printf("\n");people--;}return 0;
} 

问题B:课程学生名单

http://codeup.cn/problem.php?cid=100000596&pid=1



题目分析:

用一个vector的容器数组 来保存各个的人名。
用定址法,看到学生选的编号,就向对应的容器加入。
最后挨个输出。输出前要按字典序排序,自己写一个cmp 用sort排

#include<cstdio>
#include<vector>
#include<iostream>
#include<algorithm>
using namespace std;
bool cmp(string a,string b)
{return a<b;
}
int main(void)
{int people,book;int i,j,k;int n;//每一个人选的科目书 int number;//选的科目号 string str;vector<string> peoples[2505];cin>>people>>book;for(i=0;i<people;i++){cin>>str;scanf("%d",&n);for(int j=0;j<n;j++){scanf("%d",&number);peoples[number].push_back(str); } }for(i=1;i<=book;i++){printf("%d %d\n",i,peoples[i].size());sort(peoples[i].begin(),peoples[i].end(),cmp);for(j=0;j<peoples[i].size();j++){cout<<peoples[i][j]<<endl; }}return 0;
}

vector相关习题相关推荐

  1. 20210330:二叉树力扣相关习题复习(上)

    20210330:二叉树力扣相关习题复习(上) 题目 思路与算法 代码实现 写在最后 题目 路径总和 II 二叉树的最近公共祖先 二叉树展开为链表 思路与算法 路径总和 II:经典三序遍历二叉树题目, ...

  2. Algorithm:【Algorithm算法进阶之路】之算法中的数学编程相关习题(时间速度、进制转换、排列组合、条件概率、斐波那契数列)

    Algorithm:[Algorithm算法进阶之路]之算法中的数学编程相关习题(时间速度.进制转换.排列组合.条件概率.斐波那契数列) 目录 时间速度 排列组合 进制转换 条件概率 斐波那契数列 时 ...

  3. 计算机网络学习(六)—网络层概述以及相关习题

    计算机网络学习(六)-网络层概述以及相关习题 学习内容 一.网络层的概述 二.网络层提供的两种服务 三.IPv4地址的概述 四.分类编址IPv4地址 五.划分子网的IPv4地址 六.无分类编制的IPv ...

  4. 【数据库E-R图知识点和相关习题(复试真题)】

    文章目录 数据库E-R图知识点和相关习题 E-R图的前置知识 习题 工厂物资管理系统(例题) 防疫管理系统(2021) 社区隔离人员管理系统(2020A) 在线教学管理系统(2020B) 餐厅管理系统 ...

  5. 操作系统:临界区、临界资源的概念及相关习题

    文章目录 前言 一.相关概念 1.临界资源 2.临界区 二.习题 1.习题 总结 前言 临界区.临界资源的概念及相关习题 一.相关概念 总体呈现:为了保护共享资源,不让多个进程同时访问这个共享资源,即 ...

  6. 进程调度算法相关习题

    处理机调度与死锁相关习题 1.1.假设一个系统有 5 个进程,他们的到达时间和服务时间如上表所示,忽略 I/O 以及其他的开销时间,若分别按 先来先服务( FCFS ) . 非抢占式及抢占 的短进程优 ...

  7. 放大电路模型及相关习题

    经常回顾这些模型,牢牢记住 1.模型 2.相关习题

  8. 【二叉树相关习题】二叉树最大深度;平衡二叉树;最近公共祖先;对称二叉树;

    二叉树相关习题 文章目录 二叉树相关习题 1. 检查两棵树是否相同 2. 判断一个树是否是另一个树的子树 3. 二叉树的最大深度 4. 判断一颗二叉树是否是平衡二叉树 5. 对称二叉树 6. 二叉树的 ...

  9. CALL的原理解析及相关习题

    CALL的原理解析 首先来来了解一下如何获取除第一个参数以外其它参数:以下两种方法都是利用ES6的规则 //1.方法一:利用剩余运算符 Function.prototype.call = functi ...

最新文章

  1. LeetCode 601. Human Traffic of Stadium
  2. python定义一个圆_Python-矩形和圆形
  3. 九九乘法表代码口述_利用随机函数实现座次表的随机排座
  4. mysql 学生成绩等级_JSP+SSM+Mysql实现的学生成绩管理系统
  5. tickcount()修改成小时分钟_银行核心系统24小时机制实现总结
  6. Android RecyclerView (十)组件化封装
  7. TensorFlow 实现深度神经网络 —— Denoising Autoencoder
  8. linux添加mysql到服务_Linux下将MySQL服务添加到服务器的系统服务中
  9. IT桌面运维常识系列 -(Windows部署服务 - 01)
  10. TextView跑马灯
  11. 探访广东电子垃圾第一镇:家庭作坊饮鸩止渴---ESM
  12. 组合数学之二 —— 容斥原理及应用
  13. 【BI工具支持的数据源对照表(帆软/PowerBI/永洪/观远)】
  14. python numpy array 数组维度转换(转维)
  15. STM32学习——入门小项目
  16. Secure Code Warrlor学习记录(三)
  17. 慕课学习史上最全零基础入门HTML5和CSS笔记
  18. 机器视觉与计算机视觉的区别与联系
  19. Agfa的MUSICA说明
  20. 如何写好项目管理应聘简历?

热门文章

  1. MVC案例——模糊查询
  2. [总结] 动态DP学习笔记
  3. RK3288 添加USB转虚拟串口设备
  4. js中如何通过身份证号计算出生日期和年龄
  5. js自定义类,混合的构造函数/原型方式
  6. ###STL学习--标准模板库
  7. DAO层使用泛型的两种方式
  8. 读者看《赢道:成功创业者的28条戒律》
  9. 设计模式总结之Composite Pattern(组合模式)
  10. 排序 (5)计数排序“概念”