数据结构实验之排序七:选课名单
来源:互联网 发布:编程算法有哪些 编辑:程序博客网 时间:2024/06/07 12:55
数据结构实验之排序七:选课名单
Time Limit: 1000MS Memory Limit: 65536KB
Submit Statistic
Problem Description
随着学校规模的扩大,学生人数急剧增加,选课名单的输出也成为一个繁重的任务,我校目前有在校生3万多名,两千多门课程,请根据给定的学生选课清单输出每门课的选课学生名单。
Input
输入第一行给出两个正整数N( N ≤ 35000)和M(M ≤ 2000),其中N是全校学生总数,M是课程总数,随后给出N行,每行包括学生姓名拼音+学号后两位(字符串总长度小于10)、数字S代表该学生选课的总数,随后是S个课程编号,约定课程编号从1到M,数据之间以空格分隔。
Output
按课程编号递增的顺序输出课程编号、选课总人数以及选课学生名单,对选修同一门课程的学生按姓名的字典序输出学生名单。数据之间以空格分隔,行末不得有多余空格。
Example Input
5 3Jack01 2 2 3Jone01 2 1 3Anni02 1 1Harry01 2 1 3TBH27 1 1
Example Output
1 4Anni02Harry01Jone01TBH272 1Jack013 3Harry01Jack01Jone01
两种做法,一种用了vector容器,一种用了结构体
#include <iostream>#include <vector>#include <cstring>#include <algorithm>using namespace std;vector<string>s[2010]; //存放选择序号为n的课程的姓名学号信息int t[2010]; //存放int main(){ int i, j, m, n, sum, order; string name; cin>>n>>m; memset(t, 0, sizeof(t)); for(i = 0; i < n; i++){ //输入n个姓名信息和选课的数量 cin>>name>>sum; for(j = 0; j < sum; j++){ //输入选的sum个课程的编号 cin>>order; s[order].push_back(name); //将选这个课程的name放入vector t[order]++; //将选这个课程的人的数目更新 } } for(i = 0; i < 2010; i++){ sort(s[i].begin(), s[i].end()); //先将每一个课程的name进行排序 if(t[i]){ //如果这节课有人选那么就把选这个课程的name依次输出 cout<<i<<" "<<t[i]<<endl; for(j = 0; j < s[i].size(); j++){ cout<<s[i][j]<<endl; } } } return 0;}
#include <bits/stdc++.h>using namespace std;struct node{ string name[1000]; int sum;}s[2010];int main(){ int n, m, num; string na; cin>>n>>m; for(int i = 0; i < m; i++) s[i].sum = 0; for(int i = 0; i < n; i++){ cin>>na>>num; for(int j = 0; j < num; j++){ int x; cin>>x; s[x].name[s[x].sum++] = na; } } for(int i = 1; i <= m; i++){ cout<<i<<" "<<s[i].sum<<endl; sort(s[i].name, s[i].name+s[i].sum); for(int j = 0; j < s[i].sum; j++) cout<<s[i].name[j]<<endl; } return 0;}
阅读全文
0 0
- 数据结构实验之排序七:选课名单
- 数据结构实验之排序七:选课名单
- 数据结构实验之排序七:选课名单
- 数据结构实验之排序七:选课名单
- 数据结构实验之排序七:选课名单
- 数据结构实验之排序七:选课名单
- 数据结构实验之排序七:选课名单
- 数据结构实验之排序七:选课名单
- 数据结构实验之排序七:选课名单
- 数据结构实验之排序七:选课名单
- 数据结构实验之排序七:选课名单
- 数据结构实验之排序七:选课名单
- 数据结构实验之排序七:选课名单
- 数据结构实验之排序七:选课名单
- 数据结构实验之排序七:选课名单
- 数据结构实验之排序七:选课名单
- 数据结构实验之排序七:选课名单
- 数据结构实验之排序七:选课名单
- 51nod 1338 找格子 费用流
- Linux virtualbox 开机进不去图形化界面,停留在文本界面解决方法
- 2017-12-21php学习基础巩固第三天
- 数组去重
- 自定义View的宽高获取
- 数据结构实验之排序七:选课名单
- poj3734 Blocks(指数生成函数)
- 表达式期望结果的数目 动态规划
- Codeforces #451 (div2)题解 ABCD
- SQLPLUS
- 解决PHP调用Word组件DCOM权限问题
- org.json.JsonObject的put和append方法比较
- 数据库第一天
- 我在IT职场超15年:从程序员做到副总,送你21个超实用的职场法则!