【1039 25 STL】 Course List for Student
传送门
题意
有 \(n\) 个学生,\(k\) 门课,每个课有 \(n_{i}\) 个学生选,给出选择每⻔课的学⽣姓名,最后对于给出的 \(n\) 个学生的姓名的选课情况进⾏询问,要求按顺序给出每个学生所选课程
数据范围
\(n\leq 40000\)
\(k\leq 2500\)
\(n_{i}\leq 200\)
题解
- 格式化输出需要注意空格的输出
STL的应用
Code
#include <bits/stdc++.h>
using namespace std;
int main() {
int n, k; cin >> n >> k;
unordered_map<string, vector<int>> students;
for (int i = 0; i < k; i++) {
int idx, ni; cin >> idx >> ni;
for (int j = 0; j < ni; j++) {
string name; cin >> name;
students[name].push_back(idx);
}
}
for (int i = 0; i < n; i++) {
string name; cin >> name;
cout << name << ' ';
auto& seq = students[name];
sort(seq.begin(), seq.end());
cout << seq.size();
for (int j = 0; j < seq.size(); j++) {
cout << ' ' << seq[j];
}
if (i < n - 1) cout << endl;
}
}

浙公网安备 33010602011771号