【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;
	}
}
posted @ 2021-02-21 02:38  Hyx'  阅读(50)  评论(0)    收藏  举报