PAT 1039 Course List for Student
这一题的意思是有N个学生,K个课程,给出每个课程对应的学生数和学生名称,
然后给出N个询问,每一个询问要求输出学生对应有多少个课程,每一个课程的编号是多少,注意按顺序输出。
模拟即可
#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;}
注意排序
sort(mp[s].begin(), mp[s].end());
最后注意PAT常见的输出规则,结尾不能有空格。