数据结构实验之排序七:选课名单
来源:互联网 发布:算法设计 pdf 编辑:程序博客网 时间:2024/05/21 08:01
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
Hint
算是哈希表的实际应用,只要把握好建表的方法就行
如有不懂可查 上篇博客 哈希表
#include <stdio.h>#include <string.h>#include <stdlib.h>struct node{ char data[15]; struct node *next;};struct node *a[2001];void Insert(char s[],int j){ struct node *p,*q; p=(struct node *)malloc(sizeof(struct node)); strcpy(p->data,s); q=a[j]; while(q->next) { if(strcmp(q->next->data,p->data)>=0) { break; } q=q->next; } p->next=q->next; q->next=p;}void shuchu(int i){ struct node *p; if(a[i]) { p=a[i]; while(p->next) { printf("%s\n",p->next->data); p=p->next; } }}int main(){ for(int i=0; i<=2001; i++)//这步必不可少, { a[i]=(struct node *)malloc(sizeof(struct node)); a[i]->next=NULL; } int n,m,j,g; char b[15]; int c[2001]; memset(c,0,sizeof(c)); scanf("%d %d",&n,&m); for(int i=0; i<n; i++) { scanf("%s",b); scanf("%d",&g); while(g--) { scanf("%d",&j); c[j]++; Insert(b,j); } } for(int i=1; i<=m; i++) { printf("%d %d\n",i,c[i]); shuchu(i); }}
阅读全文
0 0
- 数据结构实验之排序七:选课名单
- 数据结构实验之排序七:选课名单
- 数据结构实验之排序七:选课名单
- 数据结构实验之排序七:选课名单
- 数据结构实验之排序七:选课名单
- 数据结构实验之排序七:选课名单
- 数据结构实验之排序七:选课名单
- 数据结构实验之排序七:选课名单
- 数据结构实验之排序七:选课名单
- 数据结构实验之排序七:选课名单
- 数据结构实验之排序七:选课名单
- 数据结构实验之排序七:选课名单
- 数据结构实验之排序七:选课名单
- 数据结构实验之排序七:选课名单
- 数据结构实验之排序七:选课名单
- 数据结构实验之排序七:选课名单
- 数据结构实验之排序七:选课名单
- 数据结构实验之排序七:选课名单
- ORACLE一个实例多个用户实现数据隔离
- 笨办法学 Python · 续 练习 46:`blog`
- 【CodeForces
- 2017 网易校招编程题
- Android 执行pm install 出现 “Failure [INSTALL_FAILED_INVALID_URI]”
- 数据结构实验之排序七:选课名单
- 根据指定文字生成图片
- JAVA日期工具类
- 【HDU 3336】Count the string(kmp)
- Java 社区
- java 怪胎之 String
- 堆排序,cpp实现
- 素数回文5到一亿
- axios资料整理