题意

  输入n本书的信息:id,书名,作者,关键字,出版社,出版年份。搜索图书,输出id。

思路

  定义5个map<string, set<int> >,分别存放Title, Author, Word, Publishier, Year与id的映射关系,然后只需要考虑怎么输入就可以了。注意因为字符串和map的参数传递很慢,所以如果把查询写成函数,必须对参数进行引用,否则会导致运行超时。

code:

 #include<bits/stdc++.h>
using namespace std;
map<string, set<int> > Title, Author, Word, Publishier, Year;
void query(map<string, set<int> > &mp, string &str){
if(mp.find(str) == mp.end()) cout<<"Not Found"<<endl;
else{
for(set<int>::iterator it = mp[str].begin(); it!=mp[str].end(); it++){
printf("%07d\n", *it);
}
}
}
int main(){
int n, m, id, type;
string tit, aut, word, pub, year, search;
cin>>n;
for(int i = ; i < n; i++){
cin>>id;
getchar();
getline(cin, tit);
Title[tit].insert(id);
getline(cin, aut);
Author[aut].insert(id);
while(cin>>word){
Word[word].insert(id);
char c = getchar();
if(c == '\n') break;
}
getline(cin, pub);
Publishier[pub].insert(id);
getline(cin, year);
Year[year].insert(id);
}
cin>>m;
for(int i = ; i < m; i++){
scanf("%d: ", &type);
getline(cin, search);
cout<<type<<": "<<search<<endl;
if(type == ) query(Title, search);
else if(type == ) query(Author, search);
else if(type == ) query(Word, search);
else if(type == ) query(Publishier, search);
else if(type == ) query(Year, search);
}
return ;
}

【算法笔记】A1022 Digital Library的更多相关文章

  1. A1022. Digital Library

    A Digital Library contains millions of books, stored according to their titles, authors, key words o ...

  2. PAT甲级——A1022 Digital Library

    A Digital Library contains millions of books, stored according to their titles, authors, key words o ...

  3. [PAT] A1022 Digital Library

    [题目大意] 给出几本书的信息,包括编号,名字,出版社,作者,出版年份,关键字:然后给出几个请求,分别按照1->名字,2->出版社等对应信息查询符合要求的书的编号. [思路] 模拟. [坑 ...

  4. 1022. Digital Library (30)

    A Digital Library contains millions of books, stored according to their titles, authors, key words o ...

  5. 学习Java 以及对几大基本排序算法(对算法笔记书的研究)的一些学习总结(Java对算法的实现持续更新中)

    Java排序一,冒泡排序! 刚刚开始学习Java,但是比较有兴趣研究算法.最近看了一本算法笔记,刚开始只是打算随便看看,但是发现这本书非常不错,尤其是对排序算法,以及哈希函数的一些解释,让我非常的感兴 ...

  6. 1022. Digital Library (30) -map -字符串处理

    题目如下: A Digital Library contains millions of books, stored according to their titles, authors, key w ...

  7. PAT1022.:Digital Library

    1022. Digital Library (30) 时间限制 1000 ms 内存限制 65536 kB 代码长度限制 16000 B 判题程序 Standard 作者 CHEN, Yue A Di ...

  8. PAT 甲级 1022 Digital Library

    https://pintia.cn/problem-sets/994805342720868352/problems/994805480801550336 A Digital Library cont ...

  9. PAT 1022 Digital Library[map使用]

    1022 Digital Library (30)(30 分) A Digital Library contains millions of books, stored according to th ...

随机推荐

  1. SFTP 安装与配置

    SFTP 安装与配置 sftp 是 Secure File Transfer Protocol 的缩写,安全文件传送协议.可以为传输文件提供一种安全的加密方法.SFTP 为 SSH 的一部分,由于这种 ...

  2. unittest单元测试框架之coverage代码覆盖率统计

    什么是coveage? coverage是一个检测单元测试覆盖率的工具,即检查你的测试用例是否覆盖到了所有的代码.当你通过pip install coverage成功安装完coverage后,就会在p ...

  3. RECONSUME_LATER

    Failure consumption,later try to consume. ================MessageExt [queueId=0, storeSize=134, queu ...

  4. jdb调试程序

    1) jdb调试正在运行的进程: 先使用jps先确定进程号,然后让jdb连接上目标进程(23549换成实际的进程号): jdb -connect sun.jvm.hotspot.jdi.SAPIDAt ...

  5. kinect相机做扫描仪扫描人体模型

  6. Oracle EBS Export File Format

    Profile Option Name Site Application Responsibility Server Server Org User Remark Export MIME type t ...

  7. Java Web系列:Spring MVC基础

    1.Web MVC基础 MVC的本质是表现层模式,我们以视图模型为中心,将视图和控制器分离出来.就如同分层模式一样,我们以业务逻辑为中心,把表现层和数据访问层代码分离出来是一样的方法.框架只能在技术层 ...

  8. php 图像处理库ImageMagick windows下的安装

    http://blog.sina.com.cn/s/blog_966e43000101bgqj.html

  9. Javascript设计模式理论与实战:单例模式

    在Javascript中,单例模式是一种最基本又经常用到的设计模式,可能在不经意间就用到了单例模式. 本文将从最基础的理论开始,讲述单例模式的基本概念和实现,最后用一个例子来讲述单例模式的应用. 理论 ...

  10. CHARPTER 3--INDEX DMVs

    1.查找最重要的缺失的索引 --======================================================= --查找最重要的缺失的索引 ) DB_NAME() AS ...