【算法笔记】A1022 Digital Library
题意
输入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的更多相关文章
- A1022. Digital Library
A Digital Library contains millions of books, stored according to their titles, authors, key words o ...
- PAT甲级——A1022 Digital Library
A Digital Library contains millions of books, stored according to their titles, authors, key words o ...
- [PAT] A1022 Digital Library
[题目大意] 给出几本书的信息,包括编号,名字,出版社,作者,出版年份,关键字:然后给出几个请求,分别按照1->名字,2->出版社等对应信息查询符合要求的书的编号. [思路] 模拟. [坑 ...
- 1022. Digital Library (30)
A Digital Library contains millions of books, stored according to their titles, authors, key words o ...
- 学习Java 以及对几大基本排序算法(对算法笔记书的研究)的一些学习总结(Java对算法的实现持续更新中)
Java排序一,冒泡排序! 刚刚开始学习Java,但是比较有兴趣研究算法.最近看了一本算法笔记,刚开始只是打算随便看看,但是发现这本书非常不错,尤其是对排序算法,以及哈希函数的一些解释,让我非常的感兴 ...
- 1022. Digital Library (30) -map -字符串处理
题目如下: A Digital Library contains millions of books, stored according to their titles, authors, key w ...
- PAT1022.:Digital Library
1022. Digital Library (30) 时间限制 1000 ms 内存限制 65536 kB 代码长度限制 16000 B 判题程序 Standard 作者 CHEN, Yue A Di ...
- PAT 甲级 1022 Digital Library
https://pintia.cn/problem-sets/994805342720868352/problems/994805480801550336 A Digital Library cont ...
- PAT 1022 Digital Library[map使用]
1022 Digital Library (30)(30 分) A Digital Library contains millions of books, stored according to th ...
随机推荐
- Spring boot——logback.xml 配置详解(四)<filter>
阅读目录 1 filter的使用 2 常用的过滤器 文章转载自:http://aub.iteye.com/blog/1101260,在此对作者的辛苦表示感谢! 回到顶部 1 filter的使用 < ...
- UVa 1395 Slim Span (最小生成树)
题意:给定n个结点的图,求最大边的权值减去最小边的权值最小的生成树. 析:这个和最小生成树差不多,从小到大枚举左端点,对于每一个左端点,再枚举右端点,不断更新最小值.挺简单的一个题. #include ...
- linux每天一小步---alias命令详解
1 命令功能 alias命令用来设置指令的别名,alias命令设置的别名只限于该次登陆操作,若要每次登入即自动设好别名,可在/etc/profile或自己的~/.bashrc中设定指令的别名. ...
- Websocket出现的错误
前端使用sockjs,后台使用spring的websocket框架 结果在一个网络较慢的地方,发现tomcat报错信息: Oct 28, 2015 10:10:43 AM org.apache.cat ...
- lucene学习笔记(四)lucene分词详解
分词器的核心类 Analyzer SimpleAnalyzer StopAnalyzer WhitespaceAnalyzer StandardAnalyzer TokenStream 分词器做好处理 ...
- ZENCART 菜鸟找人一起学习
ZENCART 是一个很强大的外贸CMS程序. 现在刚开始学习,虽然晚了五年…… 有兴趣的朋友加群一起学习交流吧 学习论坛: http://www.zencart-bbs.com/thread-htm ...
- JavaScript 对象属性
JavaScript 对象属性 属性中的 . 和 [ ](点 和 方括号)的区别 . :取对象自身的属性值: [ ]:括号内容可以是变量: var obj = {}; obj.name = 'Twx ...
- iOS Png Crush 错误
添加新的 png 图片到项目里的时候,出现错误 错误内容: while reading... pngcrush caught libpng error: cound not find file... ...
- python网络编程--协程
1.协程 协程:是单线程下的并发,又称微线程,纤程.英文名Coroutine.一句话说明什么是线程:协程是一种用户态的轻量级线程,即协程是由用户程序自己控制调度的.. 需要强调的是: 1. pyt ...
- TOJ1398正方形的编成 或者 POJ2362
#include<stdio.h> #include<string.h> #include<iostream> #include<algorithm> ...