您的位置:首页 > 理论基础 > 数据结构算法

数据结构实验之排序七:选课名单 (sdut oj3404)

2016-08-01 19:46 295 查看
</pre><pre name="code" class="cpp"><center style="padding: 0px; margin: 0px; color: rgb(51, 51, 51); font-family: 微软雅黑, 黑体, 宋体, Verdana, Helvetica, Arial, Geneva, sans-serif; line-height: 18px;"><h2 style="padding: 0px; margin: 10px 0px 7px; font-family: 微软雅黑, 'Trebuchet MS', Helvetica, Arial, Geneva, sans-serif; font-weight: normal; color: rgb(124, 169, 237); font-size: 20px; line-height: 24px;">数据结构实验之排序七:选课名单</h2><h4 style="padding: 0px; margin: 0px 0px 5px; font-family: 微软雅黑, 'Trebuchet MS', Helvetica, Arial, Geneva, sans-serif; font-weight: normal; color: red; font-size: 16px; line-height: 20px;"></h4></center><center style="padding: 0px; margin: 0px; color: rgb(51, 51, 51); font-family: 微软雅黑, 黑体, 宋体, Verdana, Helvetica, Arial, Geneva, sans-serif; line-height: 18px;"><a target=_blank href="http://acm.sdut.edu.cn/sdutoj/shownews.php?nid=24#time" title="C、C++、go、haskell、lua、pascal Time Limit1000ms Memory Limit 65536K      java、python2、python3、ruby、perl Time Limit2000ms Memory Limit 131072K" style="padding: 0px; margin: 0px; color: rgb(83, 113, 197); text-decoration: none;"></a><h5 style="padding: 0px; margin: 0px 0px 5px; font-family: 微软雅黑, 'Trebuchet MS', Helvetica, Arial, Geneva, sans-serif; font-weight: normal; color: rgb(58, 128, 0); font-size: 14px;">Time Limit: 1000ms   Memory limit: 65536K  有疑问?点这里^_^</h5></center><h2 style="padding: 0px; margin: 10px 0px 7px; font-family: 微软雅黑, 'Trebuchet MS', Helvetica, Arial, Geneva, sans-serif; font-weight: normal; color: rgb(124, 169, 237); font-size: 20px; line-height: 24px;">题目描述</h2><div class="pro_desc" style="padding: 0px; margin: 0px; color: rgb(51, 51, 51); font-family: 微软雅黑, 黑体, 宋体, Verdana, Helvetica, Arial, Geneva, sans-serif; line-height: 18px;"><p style="padding-top: 0px; padding-bottom: 0px; margin-top: 0px; margin-bottom: 10px;"><span style="padding: 0px; margin: 0px;"><span style="padding: 0px; margin: 0px;"><span style="padding: 0px; margin: 0px;"><span style="padding: 0px; margin: 0px; font-family: Arial;">随着学校规模的扩大,学生人数急剧增加,选课名单的输出也成为一个繁重的任务,我校目前有在校生3万多名,两千多门课程,请根据给定的学生选课清单输出每门课的选课学生名单。</span></span></span></span></p></div><h2 style="padding: 0px; margin: 10px 0px 7px; font-family: 微软雅黑, 'Trebuchet MS', Helvetica, Arial, Geneva, sans-serif; font-weight: normal; color: rgb(124, 169, 237); font-size: 20px; line-height: 24px;">输入</h2><div class="pro_desc" style="padding: 0px; margin: 0px; color: rgb(51, 51, 51); font-family: 微软雅黑, 黑体, 宋体, Verdana, Helvetica, Arial, Geneva, sans-serif; line-height: 18px;"><p style="padding-top: 0px; padding-bottom: 0px; margin-top: 0px; margin-bottom: 10px;"><span style="padding: 0px; margin: 0px;"><span style="padding: 0px; margin: 0px;"><span style="padding: 0px; margin: 0px;"><span style="padding: 0px; margin: 0px; font-family: Arial;">输入第一行给出两个正整数N( N ≤ 35000)和M(M ≤ 2000),其中N是全校学生总数,M是课程总数,随后给出N行,每行包括学生姓名拼音+学号后两位(字符串总长度小于10)、数字S代表该学生选课的总数,随后是S个课程编号,约定课程编号从1到M,数据之间以空格分隔。</span></span></span></span></p><div style="padding: 0px; margin: 0px;"> </div></div><h2 style="padding: 0px; margin: 10px 0px 7px; font-family: 微软雅黑, 'Trebuchet MS', Helvetica, Arial, Geneva, sans-serif; font-weight: normal; color: rgb(124, 169, 237); font-size: 20px; line-height: 24px;">输出</h2><div class="pro_desc" style="padding: 0px; margin: 0px; color: rgb(51, 51, 51); font-family: 微软雅黑, 黑体, 宋体, Verdana, Helvetica, Arial, Geneva, sans-serif; line-height: 18px;"><p style="padding-top: 0px; padding-bottom: 0px; margin-top: 0px; margin-bottom: 10px;"><span style="padding: 0px; margin: 0px;"><span style="padding: 0px; margin: 0px;"><span style="padding: 0px; margin: 0px;"><span style="padding: 0px; margin: 0px; font-family: Arial;">按课程编号递增的顺序输出课程编号、选课总人数以及选课学生名单,对选修同一门课程的学生按姓名的字典序输出学生名单。数据之间以空格分隔,行末不得有多余空格。</span></span></span></span></p></div><h2 style="padding: 0px; margin: 10px 0px 7px; font-family: 微软雅黑, 'Trebuchet MS', Helvetica, Arial, Geneva, sans-serif; font-weight: normal; color: rgb(124, 169, 237); font-size: 20px; line-height: 24px;">示例输入</h2><div class="data" style="padding: 0px; margin: 0px; font-family: 'Courier New', Courier, monospace; font-size: 16px; white-space: pre; line-height: 20px; border: 1px solid rgb(173, 173, 173); color: rgb(51, 51, 51); background-color: rgb(224, 224, 224);"><pre style="padding: 0px; margin-top: 0px; margin-bottom: 0px;">5 3
Jack01 2 2 3
Jone01 2 1 3
Anni02 1 1
Harry01 2 1 3
TBH27 1 1



示例输出

1 4
Anni02
Harry01
Jone01
TBH27
2 1
Jack01
3 3
Harry01
Jack01
Jone01



提示

 


来源

xam


示例程序

#include <iostream>
#include <cstdio>
#include <cstdlib>
#include <cmath>
#include <algorithm>
#include <cstring>
using namespace std;
struct node
{
char name[10];
};
bool cmp(node a, node b)
{
return strcmp(a.name, b.name) < 0;
}
node course[2510][40010];
int num[2510];
int main()
{
int n, k;
scanf("%d %d", &n, &k);
int i, j;
for(i = 0; i < n; i++)
{
char name[10];
scanf("%s", name);
int c;
scanf("%d", &c);
int id;
for(j = 0; j < c; j++)
{
scanf("%d", &id);
strcpy(course[id][num[id]++].name, name);
}
}
for(i = 1; i <= k; i++)
{
sort(course[i], course[i] + num[i], cmp);
}
for(i = 1; i <= k; i++)
{
printf("%d %d\n", i, num[i]);
for(j = 0; j < num[i]; j++)
{
printf("%s\n", course[i][j].name);
}
}
return 0;
}



                                            
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  数据结构 快排