1047 Student List for Course

Posted keep23456

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了1047 Student List for Course相关的知识,希望对你有一定的参考价值。

1039 Course List for Student 依靠unordered_map<string,set<int>> ans 解决问题。

这次依靠unordered_map<int ,vector<string>> ans;如果vector改成set(自带自排序+去重)最后一个测试点会超时导致无法通过。

所以每次输出结果之前,都要对vector重新排序一次。

STL:unordered_map,vector,sort,string。

#include"iostream"
#include"vector"
#include"unordered_map"
#include"algorithm"
using namespace std;

int main() {
    int n,k,cNum,index;
    scanf("%d%d",&n,&k);
    string name;
    unordered_map<int ,vector<string>> ans;
    for(int i = 0 ; i < n; ++i) {
        cin>>name;
        scanf("%d",&cNum);
        for(int j = 0; j < cNum; ++j) {
            scanf("%d",&index);
            ans[index].push_back(name);
        }
    }
    for(int i = 1; i <= k; ++i) {
        printf("%d %d
",i,ans[i].size());
        sort(ans[i].begin(),ans[i].end());//对当前vector中的string按字典序排序 
        for(auto it = ans[i].begin(); it != ans[i].end(); ++it)
            printf("%s
",it->c_str());//string 转char* 输出更快 
    }
    return 0 ;
}

技术图片

 

以上是关于1047 Student List for Course的主要内容,如果未能解决你的问题,请参考以下文章

1047 Student List for Course (25 分)

1047 Student List for Course (25)

1047. Student List for Course (25)

1047. Student List for Course (25)

1047. Student List for Course (25)

PAT1047: Student List for Course