码迷,mamicode.com
首页 > 其他好文 > 详细

【PAT甲级】1039 Course List for Student (25 分)(vector嵌套于map,段错误原因未知)

时间:2019-09-26 00:47:17      阅读:104      评论:0      收藏:0      [点我收藏+]

标签:++i   sync   cin   cout   span   size   string   个数   efi   

题意:

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

trick:

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

代码:

#define HAVE_STRUCT_TIMESPEC
#include<bits/stdc++.h>
using namespace std;
unordered_map<string,vector<int> >name;
string s;
int main(){
ios::sync_with_stdio(false);
cin.tie(NULL);
cout.tie(NULL);
int n,k;
cin>>n>>k;
int x,num;
int cnt=0;
for(int i=1;i<=k;++i){
cin>>x>>num;
for(int j=1;j<=num;++j){
cin>>s;
if(name.find(s)==name.end())
name[s]=vector<int>{x};
else
name[s].push_back(x);
}
}
string ss;
for(int i=1;i<=n;++i){
cin>>ss;
auto&idd=name[ss];
cout<<ss<<" "<<idd.size();
sort(idd.begin(),idd.end());
for(auto it:idd)
cout<<" "<<it;
cout<<"\n";
}
return 0;
}

【PAT甲级】1039 Course List for Student (25 分)(vector嵌套于map,段错误原因未知)

标签:++i   sync   cin   cout   span   size   string   个数   efi   

原文地址:https://www.cnblogs.com/ldudxy/p/11588438.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!