题目描述
1039 Course List for Student (25分)
解题思路
- 使用map<string, vector>来存储数据
- 根据最后一行输入的姓名name,找到对应的vector,输出前对vector进行排序
AC代码
#include <bits/stdc++.h>
using namespace std;
int main(){
#ifdef ONLINE_JUDGE
#else
freopen("1.txt", "r", stdin);
#endif
map<string,vector<int>>course;
int n,k;
cin>>n>>k;
while(k--)
{
int id,countc;
cin>>id>>countc;
while(countc--)
{
string name;
cin>>name;
course[name].push_back(id);
}
}
vector<int> *vec;
while(n--)
{
string name;
cin>>name;
vec=&course[name];
sort(vec->begin(),vec->end());
cout<<name<<" "<<vec->size();
vector<int>::iterator it;
for(it=vec->begin();it!=vec->end();it++)
cout<<" "<<*it;
cout<<endl;
}
return 0;
}
本文讲解了如何使用C++实现1039 CourseList for Student问题的解法,通过map数据结构存储学生姓名与课程ID的关系,然后按姓名查找并输出排序后的课程列表。

1665

被折叠的 条评论
为什么被折叠?



