1039 Course List for Student 解题代码测试结果问题整理 解题代码 #include<cstdio> #include<vector> #include<unordered_map> #include<algorithm> using namespace std; int n, k, index, nstu; char str[5]; unordered_map<string, vector<int> > m; int main() { scanf("%d%d", &n, &k); for (int i = 0; i < k; i++) { scanf("%d%d", &index, &nstu); for (int j = 0; j < nstu; j++) { scanf("%s", str); m[str].push_back(index); } } for (int i = 0; i < n; i++) { scanf("%s", str); sort(m[str].begin(), m[str].end()); printf("%s %d", str, m[str].size()); for (int j = 0; j < (int)(m[str].size()); j++) printf(" %d", m[str][j]); printf("\n"); } return 0; } 测试结果 问题整理 1.vector。 2.通过使用unsigned map替代map,使用scanf和printf替代cin cout,用字符数组替代string,将时间消耗降到最低。