PAT1022. Digital Library (30)
两个坑。
一个是一直用的malloc不行了。因为malloc分配的是固定大小,之前做的题没遇到过是因为一般string都不长(malloc分配string为24个Byte),这次直接报段错误,呢们了半天。
第二个很无语,就是ID会有0,当int处理的时候把0消掉了,会有两个case不通过。
#include <iostream>
#include <vector>
#include <sstream>
#include <stdio.h>
#include <map>
#include <algorithm>
using namespace std;
struct Book{
string id;
string title;
string author;
vector<string> keyWords;
string publish;
int year;
};
int n,m;
string tmp;
string line;
vector<Book> bookSet;
map<string,vector<int> > mmT;
map<string,vector<int> > mmA;
map<string,vector<int> > mmK;
map<string,vector<int> > mmP;
map<int,vector<int> > mmY;
bool cmp(int a,int b){
return bookSet[a].id<bookSet[b].id;
}
int main()
{
cin>>n;
for(int i=0;i<n;i++)
{
Book b;
cin>>b.id;
getline(cin,line);//cin没有读取回车
getline(cin,line);b.title=line;mmT[b.title].push_back(i);
getline(cin,line);b.author=line;mmA[b.author].push_back(i);
getline(cin,line);
stringstream ss(line);
while(ss>>tmp){
b.keyWords.push_back(tmp);
mmK[tmp].push_back(i);
}
getline(cin,line);b.publish=line;mmP[b.publish].push_back(i);
cin>>b.year;mmY[b.year].push_back(i);
bookSet.push_back(b);
}
int queN;
cin>>m;
for(int i=0;i<m;i++)
{
scanf("%d: ",&queN);
getline(cin,tmp);
int yea;
vector<int> logN;
switch(queN){
case 1:logN=mmT[tmp];break;
case 2:logN=mmA[tmp];break;
case 3:logN=mmK[tmp];break;
case 4:logN=mmP[tmp];break;
case 5:yea=stoi(tmp);logN=mmY[yea];break;
default:break;
}
printf("%d: ",queN);cout<<tmp<<endl;
sort(logN.begin(),logN.end(),cmp);
vector<int>::iterator ii=logN.begin();
while(ii!=logN.end()){
cout<<bookSet[(*ii)].id<<endl;
ii++;
}
if(logN.size()==0){
cout<<"Not Found"<<endl;
} } }
PAT1022. Digital Library (30)的更多相关文章
- PAT-1022 Digital Library (30 分) 字符串处理
A Digital Library contains millions of books, stored according to their titles, authors, key words o ...
- PAT1022.:Digital Library
1022. Digital Library (30) 时间限制 1000 ms 内存限制 65536 kB 代码长度限制 16000 B 判题程序 Standard 作者 CHEN, Yue A Di ...
- pat 甲级 1022. Digital Library (30)
1022. Digital Library (30) 时间限制 1000 ms 内存限制 65536 kB 代码长度限制 16000 B 判题程序 Standard 作者 CHEN, Yue A Di ...
- PAT 甲级 1022 Digital Library (30 分)(字符串读入getline,istringstream,测试点2时间坑点)
1022 Digital Library (30 分) A Digital Library contains millions of books, stored according to thei ...
- 1022 Digital Library (30 分)
1022 Digital Library (30 分) A Digital Library contains millions of books, stored according to thei ...
- 1022. Digital Library (30)
A Digital Library contains millions of books, stored according to their titles, authors, key words o ...
- 1022. Digital Library (30) -map -字符串处理
题目如下: A Digital Library contains millions of books, stored according to their titles, authors, key w ...
- 1022 Digital Library (30)(30 point(s))
problem A Digital Library contains millions of books, stored according to their titles, authors, key ...
- 1022 Digital Library (30)(30 分)
A Digital Library contains millions of books, stored according to their titles, authors, key words o ...
随机推荐
- X明X源面试题《二》
一.解释5种访问修饰符答:public-访问不受限制.private-访问范围为它所属的类.protected-访问范围为它所属的类或从该类派生的类.internal-访问范围为当前程序集.prote ...
- EasyNVR摄像机无插件直播如何排查视频广场不在线
通道配置完成进入视频广场监控通道显示不在线 保证RTSP视频流地址是否可用,推荐用VLC先测试地址是否可用.(注意:软件本身只支持标准的RTSP视频流地址.) 如果是刚配置完需要等大概几秒左右有的网络 ...
- c#文件流汇总
操作文件比较常见,项目中经常出现这样的需求:按每个月自动创建文件,并且向文件里面插入一些数据,那么我们将要分析,文件是否存在的情况:如果存在则直接打开文件流向文件中插入数据,如果不存在,则创建文件再插 ...
- 关于git 提交到分支
想必大家对于github并不陌生,但是有时候我们提交到github上的页面,想将静态的页面展示给别人看,所以这个时候,需要创建一个gh-pages的分支,然后利用 https://you github ...
- Introduction to Mathematical Thinking - Week 9
错题 评分出错 题目要求的是 "any" ,而答案只给出了一个.所以认为回答者没有理解题意,连 any 都没有理解.所以 0 分. 第一,标准的归纳法只能对自然数使用,而题目要求的 ...
- js特殊字符过滤
//匹配中文 数字 字母 下划线 var checkInput = function (str) { var pattern =var pattern = /^[\w\u4e00-\u9fa5]+$/ ...
- 子单元通过 prop 接口与父单元进行了良好的解耦
https://cn.vuejs.org/v2/guide/#起步 现在,我们可以使用 v-bind 指令将待办项传到循环输出的每个组件中: <div id="app-7"& ...
- [转】[tip] localhost vs. (local) in SQL Server connection strings
主要区别在于连接协议不同,前者(localhost)使用TCP协议,后者("(local)")使用NamedPipe协议. Sample code with SQL Server ...
- 【生产问题】--8KW的数据表导致业务卡顿
问题描述:业务突然变得巨卡 分析思路: (1)分析用户请求进程:查看是否有长期运行霸占锁的情况,或者进程数量巨多.很明显我这里就是巨多,正常情况一般0~40来个的样子,在业务使用高峰期居然达到了140 ...
- [转] CentOS---网络配置详解
原文地址: http://blog.chinaunix.net/uid-26495963-id-3230810.html 一.配置文件详解在RHEL或者CentOS等Redhat系的Linux系统里, ...