这一题的意思是有N个学生,K个课程,给出每个课程对应的学生数和学生名称,
然后给出N个询问,每一个询问要求输出学生对应有多少个课程,每一个课程的编号是多少,注意按顺序输出。
模拟即可
cpp
#include <iostream>
#include <limits.h>
#include <cstring>
#include <queue>
#include <unordered_map>
#include <algorithm>
#include <cmath>
#include <vector>
#include <map>
using namespace std;
int N;//学生数量
int K;//课程数量
int index1;//课程编号
int ni;//登记学生的数量
unordered_map<string,vector<int>> mp;
int main()
{
ios::sync_with_stdio(0),cin.tie(0),cout.tie(0);
cin>>N>>K;
for(int i=0;i<K;i++)
{
cin>>index1>>ni;
for(int j=0;j<ni;j++)
{
string s;
cin>>s;
mp[s].push_back(index1);
}
}
for(int i=0;i<N;i++)
{
string s;
cin>>s;
cout<<s<<" ";
if(mp[s].size()==0)
{
cout<<"0"<<endl;
continue;
}
else
{
cout<<mp[s].size();
sort(mp[s].begin(), mp[s].end());
}
for(int j=0;j<mp[s].size();j++)
{
cout<<" "<<mp[s][j];
}
cout<<endl;
}
return 0;
}
注意排序
cpp
sort(mp[s].begin(), mp[s].end());
最后注意PAT常见的输出规则,结尾不能有空格。