1047 Student List for Course (25 point(s))
题解
STL简单应用。使用map<id,set<string>> 会超时。原因在于时间复杂度达到 。
降到就能过了。
#include<iostream>
#include<vector>
#include<string>
#include<cstdio>
#include<algorithm>
using namespace std;
const int MAXN = 2500 + 10;
vector<string> res[MAXN];
int n, k;
string name;
int course, m;
int main() {
scanf("%d%d", &n, &k);
for(int i = 0; i < n; ++i) {
cin >> name;
scanf("%d", &m);
for(int j = 0; j < m; ++j) {
scanf("%d", &course);
res[course].push_back(name);
}
}
for(int i = 1; i <= k; ++i) {
printf("%d %d\n", i, res[i].size());
sort(res[i].begin(), res[i].end());
for(int j = 0; j < res[i].size(); ++j) printf("%s\n", res[i][j].c_str());
}
return 0;
}