zoukankan      html  css  js  c++  java
  • 【PAT甲级】1039 Course List for Student (25 分)(vector嵌套于map,段错误原因未知)

    题意:

    输入两个正整数N和K(N<=40000,K<=2500),分别为学生和课程的数量。接下来输入K门课的信息,先输入每门课的ID再输入有多少学生选了这门课,接下来输入学生们的ID。最后N次询问,输入学生的ID输出该学生选了多少们课,输出所选课程的数量,按照递增序输出课程的ID。

    trick:

    第5个数据点出现段错误,把原本以map存学生对应ID再映射vector存储该学生所选课程改成vector嵌套在map内,就没有段错误的问题出现,疑似映射过程中指针漂移???

    AAAAAccepted code:

     1 #define HAVE_STRUCT_TIMESPEC
     2 #include<bits/stdc++.h>
     3 using namespace std;
     4 unordered_map<string,vector<int> >name;
     5 string s;
     6 int main(){
     7     ios::sync_with_stdio(false);
     8     cin.tie(NULL);
     9     cout.tie(NULL);
    10     int n,k;
    11     cin>>n>>k;
    12     int x,num;
    13     int cnt=0;
    14     for(int i=1;i<=k;++i){
    15         cin>>x>>num;
    16         for(int j=1;j<=num;++j){
    17             cin>>s;
    18             if(name.find(s)==name.end())
    19                 name[s]=vector<int>{x};
    20             else
    21                 name[s].push_back(x);
    22         }
    23     }
    24     string ss;
    25     for(int i=1;i<=n;++i){
    26         cin>>ss;
    27         auto&idd=name[ss];
    28         cout<<ss<<" "<<idd.size();
    29         sort(idd.begin(),idd.end());
    30         for(auto it:idd)
    31             cout<<" "<<it;
    32         cout<<"
    ";
    33     }
    34     return 0;
    35 }
    保持热爱 不懈努力 不试试看怎么知道会失败呢(划掉) 世上无难事 只要肯放弃(划掉)
  • 相关阅读:
    GitLab CI/CD的官译【原】
    Gearman介绍、原理分析、实践改进
    Golang逃逸分析
    Go 程序是怎样跑起来的
    分布式系统的常见玩法
    开发更高可用、高质量的服务的一些建议
    理解 Kubernetes 的亲和性调度
    服务发现对比:Zookeeper vs etcd vs Consul
    探索etcd,Zookeeper和Consul一致键值数据存储的性能
    CentOS 7 安装无线驱动
  • 原文地址:https://www.cnblogs.com/ldudxy/p/11588438.html
Copyright © 2011-2022 走看看